如何从Linux在dotnet核心下使用C#访问Windows共享?

时间:2020-10-05 17:25:30

标签: c# .net linux .net-core windows-share

我想访问不同的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é

0 个答案:

没有答案