77 votes

C # - FileStream et la création de dossiers

Juste une petite question. J'utilise quelque chose comme ça

 FileStream fs = new FileStream(fileName, FileMode.Create);
 

Je me demandais s'il y avait un paramètre que je pourrais lui transmettre pour le forcer à créer le dossier s'il n'existe pas. Pour le moment, une exception est levée si le dossier n'est pas trouvé.

S'il existe une meilleure méthode que d'utiliser FileStream, je suis ouvert aux idées.

Merci d'avance.

155voto

dtb Points 104373

Utilisez Directory.CreateDirectory :

Méthode Directory.CreateDirectory (String)

Crée tous les répertoires et sous-répertoires comme spécifié par chemin.

Exemple:

 string fileName = @"C:\Users\SomeUser\My Documents\Foo\Bar\Baz\text1.txt";

Directory.CreateDirectory(Path.GetDirectoryName(fileName));

using (FileStream fs = new FileStream(fileName, FileMode.Create))
{
    // ...
}
 

( Path.GetDirectoryName renvoie la partie répertoire du nom de fichier.)

20voto

Joe Points 60749

Quelque chose comme:

 void EnsureFolder(string path)
{
    string directoryName = Path.GetDirectoryName(path);
    if ((directoryName.Length > 0) && (!Directory.Exists(directoryName))
    {
        Directory.CreateDirectory(directoryName);
    }
}
 

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