131 Stimmen

Prüfen, ob ein Pfad gültig ist

Ich frage mich nur: Ich bin auf der Suche nach einer Möglichkeit, zu überprüfen, ob ein bestimmter Pfad gültig ist. (Hinweis: Ich möchte nicht prüfen, ob eine Datei vorhanden ist! Ich möchte nur die Gültigkeit des Pfades überprüfen - also ob eine Datei an diesem Ort existieren könnte) .

Das Problem ist, dass ich in der .Net API nichts finden kann. Aufgrund der vielen Formate und Speicherorte, die Windows unterstützt, würde ich lieber etwas MS-eigenes verwenden.

Da die Funktion in der Lage sein sollte, gegen zu prüfen:

  • Relative Pfade (./)
  • Absolute Pfade (c: \tmp )
  • UNC-Pathes ( \some -pc \c $)
  • NTFS-Beschränkungen wie der volle Pfad mit 1024 Zeichen - Wenn ich mich nicht irre, macht eine Überschreitung des Pfades eine Datei für viele unzugänglich Windows-interne Funktionen. Das Umbenennen mit dem Explorer funktioniert trotzdem
  • Volume-GUID-Pfade: "\? \Volume {GUID} \somefile.foo

Hat jemand eine solche Funktion?

-4voto

markpsmith Punkte 4854

-4voto

Alen Milakovic Punkte 77

Sie könnten versuchen, Path.IsPathRooted() in Kombination mit Path.GetInvalidFileNameChars() zu verwenden, um sicherzustellen, dass der Pfad halbwegs in Ordnung ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X