Wenn Sie einen vollständigen Pfad haben wie: "C:\dir0\dir1\dir2\dir3\dir4\"
Wie würden Sie ihn am besten implementieren, damit alle Verzeichnisse vorhanden sind?
Gibt es dafür eine Methode in der BCL? Wenn nicht, wie geht das am elegantesten?
Wenn Sie einen vollständigen Pfad haben wie: "C:\dir0\dir1\dir2\dir3\dir4\"
Wie würden Sie ihn am besten implementieren, damit alle Verzeichnisse vorhanden sind?
Gibt es dafür eine Methode in der BCL? Wenn nicht, wie geht das am elegantesten?
Antworten:
Ich würde anrufen Directory.CreateDirectory(@"C:\dir0\dir1\dir2\dir3\dir4\")
.
Entgegen der landläufigen Meinung Directory.CreateDirectory
werden automatisch die übergeordneten Verzeichnisse erstellt, die nicht vorhanden sind.
In den Worten von MSDNCreates all directories and subdirectories as specified by path.
Wenn der gesamte Pfad bereits vorhanden ist, wird nichts unternommen. (Es wird keine Ausnahme auslösen)
Path.GetDirectoryName
, um es zu bekommen.
Erstellen Sie Verzeichnisse aus dem vollständigen Dateipfad
private String EvaluatePath(String path){
try
{
String folder = Path.GetDirectoryName(path);
if (!Directory.Exists(folder))
{
// Try to create the directory.
DirectoryInfo di = Directory.CreateDirectory(folder);
}
}
catch (IOException ioex)
{
Console.WriteLine(ioex.Message);
return "";
}
return path;
}