web-dev-qa-db-fra.com

FileStream et 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 pouvais lui passer 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, alors en utilisant FileStream je suis ouvert aux idées.

55
Ash Burlaczenko

Utilisez Directory.CreateDirectory :

Méthode Directory.CreateDirectory (chaîne)

Crée tous les répertoires et sous-répertoires comme spécifié par le 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.)

116
dtb

Quelque chose comme:

void EnsureFolder(string path)
{
    string directoryName = Path.GetDirectoryName(path);
    // If path is a file name only, directory name will be an empty string
    if (directoryName.Length > 0)
    {
        // Create all directories on the path that don't already exist
        Directory.CreateDirectory(directoryName);
    }
}
15
Joe