我想通过网络访问远程计算机上的驱动器/文件夹/子文件夹/文件,以获取C#中的计算机。
我知道为此使用WMI。但是,由于安全权限,WMI可能无法在远程计算机上执行。
C#中有哪些替代方法可以通过网络枚举远程计算机的文件夹/子文件夹/文件。
谢谢! GAGAN
答案 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