Wie erkennen Sie, ob ein Dateisystemobjekt ist ein Pfad oder ein Verzeichnis [Duplicate]
Frage
Mögliche Duplizieren:
.NET Wie zu überprüfen, ob Pfad ist eine Datei und kein Verzeichnis?
Kann jemand denken Sie an eine gute Art und Weise, ob ein Dateisystem-Objektpfad ein oder ein Verzeichnis eine Datei entspricht erzählen?
Ich habe die folgende Methode:
public static bool PathIsFile(this string fullPath)
{
return (Path.GetExtension(fullPath).Length > 0);
}
Aber einige Dateien haben keine Erweiterung und einige Verzeichnisse haben einen Punkt in ihrem Namen so wird dieses Schneiden es nicht.
Lösung
Es gibt keine Möglichkeit, nur aus einer String-Analyse, zu wissen, dass etwas eine Datei oder ein Verzeichnis, da, wie Sie erwähnten,
C:\WINDOWS\WhoKnowsWhatThisIs
könnte entweder ein Verzeichnis oder eine Datei sein.
Sie werden so etwas wie System.IO.Directory.Exists()
oder System.IO.File.GetAttributes()
zu Test verlangen.
Andere Tipps
Haben Sie ausgecheckt:
System.IO.Directory.Exists(path);
und
System.IO.File.Exists(path);
Diese Rückkehr boolean, aber ich kann nicht (im Moment) herauszufinden, welche Fehler sie erhöhen, wenn jeweils eine Datei oder ein Verzeichnis angegeben.
Es gibt auch die System.IO.FileInfo
und System.IO.DirectoryInfo
Klassen, die Ihnen dabei helfen soll.
Sie haben das Dateisystem zu fragen. Er weiß immer. Das ist die einzige todsichere Methode.
f1 = File(path);
bool isfile = f1.isFile();
bool isdir = f1.isDirectory();
ist ein Beispiel aus java.io.File.
Überprüfen Sie die isFile Verfahrens. Es wird verwendet, hier: