如何解决如何从Linux在dotnet核心下使用C#访问Windows共享?
我想访问不同的Windows共享,而不必先将它们安装在Linux下。
如果这不起作用,那么我将处于“动态”挂载或卸载状态...
在Windows(dotnet核心3.1)下,我可以毫无问题地访问Windows共享,如以下测试程序所示:
using System;
using System.Net;
namespace HelloWorld1
{
class Program
{
static void Main(string[] args)
{
string Server = "192.168.70.204";
Console.WriteLine($"Server: {Server}");
NetworkCredential NetCredential = new NetworkCredential("user","password","domain");
CredentialCache Netcache = new CredentialCache();
Netcache.Add(new Uri($"//{Server}/Dokumente"),"Basic",NetCredential);
string[] Directories = System.IO.Directory.GetDirectories($"//{Server}/Dokumente");
foreach (var dir in Directories)
{
Console.WriteLine(dir);
}
}
}
}
这在Linux下不起作用。出现以下错误消息:
Server: 192.168.70.204
Unhandled exception. System.IO.DirectoryNotFoundException: Could not find a part of the path '/192.168.70.204/Dokumente'.
at System.IO.Enumeration.FileSystemEnumerator`1.CreateDirectoryHandle(String path,Boolean ignoreNotFound)
at System.IO.Enumeration.FileSystemEnumerator`1.Init()
at System.IO.Enumeration.FileSystemEnumerator`1..ctor(String directory,Boolean isnormalized,Enumerationoptions options)
at System.IO.Enumeration.FileSystemEnumerable`1..ctor(String directory,FindTransform transform,Enumerationoptions options,Boolean isnormalized)
at System.IO.Enumeration.FileSystemEnumerableFactory.UserDirectories(String directory,String expression,Enumerationoptions options)
at System.IO.Directory.InternalEnumeratePaths(String path,String searchPattern,SearchTarget searchTarget,Enumerationoptions options)
at System.IO.Directory.GetDirectories(String path)
at HelloWorld1.Program.Main(String[] args) in C:\Daten\Visual Studio\Projects\Tests\dotnetcore\HelloWorld1\HelloWorld1\Program.cs:line 18
Aborted (core dumped)
Linux不喜欢什么?该程序在WSL2(Ubuntu 20.04)下运行。
非常感谢!
René
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。