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.CreateDirectorycreerà 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.GetDirectoryNameper 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;
}