Si tiene una ruta completa como: "C:\dir0\dir1\dir2\dir3\dir4\"
¿cómo la implementaría mejor para que todos los directorios estén presentes?
¿Hay un método para esto en el BCL? Si no, ¿cuál es la forma más elegante de hacer esto?
Si tiene una ruta completa como: "C:\dir0\dir1\dir2\dir3\dir4\"
¿cómo la implementaría mejor para que todos los directorios estén presentes?
¿Hay un método para esto en el BCL? Si no, ¿cuál es la forma más elegante de hacer esto?
Respuestas:
Yo llamaría Directory.CreateDirectory(@"C:\dir0\dir1\dir2\dir3\dir4\")
.
Contrariamente a la creencia popular, Directory.CreateDirectory
creará automáticamente los directorios principales que no existan.
En palabras de MSDN,Creates all directories and subdirectories as specified by path.
Si toda la ruta ya existe, no hará nada. (No arrojará una excepción)
Path.GetDirectoryName
para obtenerlo.
Crear directorios desde la ruta de archivo completa
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;
}