2016-06-20 3 views
-1

Ich möchte auf Laufwerke/Ordner/Unterordner/Dateien auf Remote-Computern über das Netzwerk für eine Maschine in C# zugreifen.Remote Freigegebene Ordner und Laufwerke C#

Ich kenne eine Verwendung von WMI dafür. WMI ist jedoch aufgrund von Sicherheitsberechtigungen möglicherweise nicht über Remotecomputer ausführbar.

Was ist ein alternativer Weg in C#, um die Ordner/Unterordner/Dateien für Remote-Maschinen über das Netzwerk aufzuzählen.

Danke! Gagan

+0

Mit "Remote-Maschinen", meinen Sie Dateifreigaben (auch mit UNC-Pfaden, wie \\ \ share \ file.txt Maschine) , FTP-Sites oder irgendetwas anderes? –

+0

Ja und Pfade wie \\ Maschine \ C $. Ist es möglich, die Ordner und Dateien auf einem Netzwerkcomputer zu nummerieren, wenn uns die Anmeldeinformationen des Netzwerkcomputers zur Verfügung gestellt werden. – Gags

Antwort

0

Sie können forfiles verwenden, ich nehme an, alle Maschinen sind Windows.

Weitere Informationen dazu finden Sie auf diesen Link: Forfiles

0

freigegebene Ordner auf einem UNC-Pfad aufgezählt wie lokale Verzeichnisse werden können, indem die Klassen im System.IO namespace, wie Directory.EnumerateFiles.

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

Wie Sie jedoch sagen, gibt es eine Frage der Anmeldeinformationen. Wenn Sie für den Zugriff auf die Freigaben andere Anmeldeinformationen angeben müssen, müssen Sie sich bei dem Remotecomputer authentifizieren. Glücklicherweise gibt es eine große Lösung in this answer für die Erstellung von Ad-hoc-Netzwerkverbindungen:

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