189 votes

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

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 ?

406voto

SLaks Points 391154

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

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

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

5 votes

Merci, je ne le savais pas. Le chemin doit être un chemin de répertoire, pas un chemin de fichier, non ?

33 votes

@Joan:Oui ; vous pouvez appeler Path.GetDirectoryName pour l'obtenir.

4 votes

Il aurait dû appeler CreateDirectoryTree

2voto

Alejandro Aranda Points 372

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;
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X