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

时间:2016-06-20 06:28:28

标签: c# networking

我想通过网络访问远程计算机上的驱动器/文件夹/子文件夹/文件,以获取C#中的计算机。

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

C#中有哪些替代方法可以通过网络枚举远程计算机的文件夹/子文件夹/文件。

谢谢! GAGAN

2 个答案:

答案 0 :(得分:0)

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

foreach (var file in Directory.EnumerateFiles(@"\\machine\c$"))
{
}

然而,正如你所说,有一个凭证问题。如果需要指定不同的凭据来访问共享,则必须对远程计算机进行身份验证。幸运的是,在this answer中有一个很好的解决方案来创建ad-hoc网络连接:

using (new NetworkConnection("\\machine\c$", new NetworkCredentials("username", "password")))
{
    foreach (var file in Directory.EnumerateFiles(@"\\machine\c$"))
    {
    }
}

答案 1 :(得分:-1)

您可以使用forfiles,我假设所有计算机都是Windows

有关详细信息,请参阅此链接:Forfiles