Wie erkennen Sie, ob ein Dateisystemobjekt ist ein Pfad oder ein Verzeichnis [Duplicate]

StackOverflow https://stackoverflow.com/questions/1003456

  •  05-07-2019
  •  | 
  •  

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.

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top