denke ich, die volle Antwort auf diese Frage Nutzung der DriveInfo.DriveType Eigenschaft enthalten ist.
public static bool IsNetworkPath(string path)
{
if (!path.StartsWith(@"/") && !path.StartsWith(@"\"))
{
string rootPath = System.IO.Path.GetPathRoot(path); // get drive's letter
System.IO.DriveInfo driveInfo = new System.IO.DriveInfo(rootPath); // get info about the drive
return driveInfo.DriveType == DriveType.Network; // return true if a network drive
}
return true; // is a UNC path
}
Testen Sie den Pfad zu sehen, ob es mit einem Schrägstrich Zeichen beginnt und wenn es funktioniert, dann ist es ein UNC-Pfad. In diesem Fall müssen Sie davon ausgehen, dass es sich um einen Netzwerkpfad handelt - in Wirklichkeit handelt es sich möglicherweise nicht um einen Pfad, der auf einen anderen Computer zeigt, sondern um einen UNC-Pfad, der auf Ihre lokale Maschine verweist Wahrscheinlich für die meisten Leute, denke ich, aber Sie könnten Prüfungen für diese Bedingung hinzufügen, wenn Sie eine kugelsicherere Lösung wollten.
Wenn der Pfad nicht mit einem Schrägstrich beginnt, verwenden Sie die DriveInfo.DriveType-Eigenschaft, um festzustellen, ob es sich um ein Netzlaufwerk handelt oder nicht.
Selbst Ein UNC-Pfad (beginnend mit '\\\') kann auf Ihren lokalen Computer verweisen. – Oded
siehe http://stackoverflow.com/questions/520753/what-is-the-correct-way-to-check-if-a-path-is-anunc-path-or-local-path/ 520796 # 520796 – nos
Es ist zu spät, aber das ist die perfekte Antwort [Link], hoffe, dass diese eine [1]: http://stackoverflow.com/questions/2243569/check-if-path-is-on -network # 2244497 – mahmoodels