web-dev-qa-db-fra.com

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 le mettre en œuvre de manière optimale pour que tous les répertoires soient présents?

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

145
Joan Venge

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

Contrairement aux idées reçues, Directory.CreateDirectory créera automatiquement les répertoires parents qui n’existent pas.
Selon les mots de MSDN, Creates all directories and subdirectories as specified by path.

Si tout le chemin existe déjà, cela ne fera rien. (Il ne jettera pas une exception)

317
SLaks

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;
}
2
Alejandro Aranda