Comment créer plusieurs répertoires à partir d'un seul chemin complet en C #?


162

Si vous avez un chemin complet comme: "C:\dir0\dir1\dir2\dir3\dir4\"comment l'implémenter au mieux pour que tous les répertoires soient présents?

Existe-t-il une méthode pour cela dans la BCL? Sinon, quelle est la manière la plus élégante de le faire?

Réponses:


346

J'appellerais Directory.CreateDirectory(@"C:\dir0\dir1\dir2\dir3\dir4\").

Contrairement à la croyance populaire, Directory.CreateDirectorycréera automatiquement les répertoires parents qui n'existent pas.
Dans les mots de MSDN,Creates all directories and subdirectories as specified by path.

Si le chemin complet existe déjà, il ne fera rien. (Cela ne lèvera pas d'exception)


3
Merci, je ne savais pas ça. Le chemin doit être un chemin de répertoire, pas un chemin de fichier, non?
Joan Venge

27
@Joan: Oui; vous pouvez appeler Path.GetDirectoryNamepour l'obtenir.
SLaks

2
Il aurait dû s'appeler CreateDirectoryTree
OldSchool

3

Créer des répertoires à partir du chemin de fichier complet

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;
}
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.