远程共享文件夹和驱动器 C#

Gag*_*ags 4 c# networking

我想通过网络为 C# 中的机器访问远程机器上的驱动器/文件夹/子文件夹/文件。

我知道为此使用 WMI。但是,由于安全权限,WMI 可能无法在远程计算机上执行。

在 C# 中枚举远程计算机的文件夹/子文件夹/文件的替代方法是什么。

谢谢!加根

Avn*_*tan 7

UNC 路径上的共享文件夹可以像本地目录一样枚举,使用 System.IO命名空间中的类,如Directory.EnumerateFiles.

foreach (var file in Directory.EnumerateFiles(@"\\machine\c$"))
{
}
Run Code Online (Sandbox Code Playgroud)

但是,正如您所说,存在凭据问题。如果您需要指定不同的凭据来访问共享,则必须针对远程计算机进行身份验证。幸运的是,这个答案中有一个很好的解决方案,用于创建临时网络连接:

using (new NetworkConnection("\\machine\c$", new NetworkCredential("username", "password")))
{
    foreach (var file in Directory.EnumerateFiles(@"\\machine\c$"))
    {
    }
}
Run Code Online (Sandbox Code Playgroud)


Ami*_*kya 0

你可以使用forfiles,我假设所有机器都是Windows

请参阅此链接了解更多信息:Forfiles