2012-03-03 30 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

相關問題