2012-03-03 26 views
2

有没有一种方法可以搜索所有可用网络共享上的文件,而无需实际搜索有关共享机器名称的任何信息?有没有办法使用C#在所有可用的网络共享上搜索文件?

这是我正在尝试做的。在服务器共享文件夹中,我有一个配置文件,指定该共享的UNC信息。从该LAN上的另一台桌面上,我想运行一个程序来搜索该文件,并根据该文件内容将驱动器映射到该文件夹​​。

我有一群技术支持人员经常必须将这些驱动器映射到共享文件夹。与电话联系的人可能对电脑非常缺乏经验。我正在努力寻找一种让他们的工作更轻松的方法。

感谢您提供的任何帮助。

+0

是你的客户对Windows域(活动目录)的用户?或者,如果受您问题影响的用户是技术支持人员(我无法根据您的问题的措辞说出),他们是否在Windows域中? – 2012-03-03 02:52:07

+0

有时是的,有时没有。我们的客户是我们需要为此做的。所以受影响的人不是科技人员。 – JimDel 2012-03-03 02:58:24

+0

客户网络上的任何计算机是否可以在您的情况下共享一个共享或者是否存在共同约定?也是限制在当前网段中的计算机上的可访问共享,或者应该认为客户正在访问来自不同子网的文件共享吗? – 2012-03-03 03:00:49

回答

2

我不记得列出可用网络共享的Windows API(尽管我可能错过了它),但是快速(在代码中处理速度慢)的方法是使用this CodeProject article中的方法来发现网络上的计算机(或至少大部分计算机),并尝试连接到@"\\" + currentIPOrHostName以查看是否能够返回共享列表。我从来没有这样做过,所以我不能保证它会起作用,但除非有人想出更好的方法,否则这将值得一试。

+0

谢谢M,这会让我开始。 – JimDel 2012-03-04 18:45:12

0

试试这个(C#4.0):

private void ShowDrives() 
    { 
     DriveInfo[] drives = DriveInfo.GetDrives(); 
     foreach (DriveInfo drive in drives) 
     { 
      MessageBox.Show(drive.Name); 
     } 
    } 
+2

这使驱动器可用,而不是共享。但谢谢你的想法。 – JimDel 2012-03-03 15:53:50

相关问题