Se hai un percorso completo come: "C:\dir0\dir1\dir2\dir3\dir4\"
come lo implementeresti meglio in modo che siano presenti tutte le directory?
Esiste un metodo per questo nel BCL? In caso contrario, qual è il modo più elegante per farlo?
Se hai un percorso completo come: "C:\dir0\dir1\dir2\dir3\dir4\"
come lo implementeresti meglio in modo che siano presenti tutte le directory?
Esiste un metodo per questo nel BCL? In caso contrario, qual è il modo più elegante per farlo?
Risposte:
Vorrei chiamare Directory.CreateDirectory(@"C:\dir0\dir1\dir2\dir3\dir4\")
.
Contrariamente alla credenza popolare, Directory.CreateDirectory
creerà automaticamente qualsiasi directory padre non esiste.
Nelle parole di MSDN,Creates all directories and subdirectories as specified by path.
Se l'intero percorso esiste già, non farà nulla. (Non genererà un'eccezione)
Path.GetDirectoryName
per ottenerlo.
Crea directory dal percorso file completo
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;
}