2016-06-20 71 views
-1

我想通過網絡訪問C#中的計算機上的遠程計算機上的驅動器/文件夾/子文件夾/文件。遠程共享文件夾和驅動器C#

我知道這個使用WMI。但是,由於安全權限,WMI可能無法在遠程計算機上執行。

什麼是C#中通過網絡枚舉遠程計算機的文件夾/子文件夾/文件的另一種方法。

謝謝! Gagan

+0

通過「遠程機器」,你的意思是文件共享(通過UNC路徑來訪問,如\\計算機名\共享\ file.txt的) ,FTP站點或其他任何東西? –

+0

是和\\機器\ C $的路徑。如果我們提供了網絡計算機的憑據,是否可以枚舉網絡計算機上的文件夾和文件? – Gags

回答

0

您可以使用forfiles,我假設所有的機器都是Windows

參考此鏈接瞭解更多信息:Forfiles

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$")) 
    { 
    } 
}