¿Cómo crear múltiples directorios desde una sola ruta completa en C #?


162

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:


346

Yo llamaría Directory.CreateDirectory(@"C:\dir0\dir1\dir2\dir3\dir4\").

Contrariamente a la creencia popular, Directory.CreateDirectorycreará 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)


3
Gracias, no lo sabía. La ruta tiene que ser una ruta de directorio, no una ruta de archivo, ¿verdad?
Joan Venge el

27
@Joan: Sí Puedes llamar Path.GetDirectoryNamepara obtenerlo.
Fallece el

2
Debería haber llamado CreateDirectoryTree
OldSchool

3

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;
}
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.