FileStream и создание папок - PullRequest
55 голосов
/ 12 сентября 2010

Просто быстрый вопрос.Я использую что-то вроде этого

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

Мне было интересно, есть ли параметр, который я мог бы передать ему, чтобы заставить его создать папку, если она не существует.На данный момент исключение выдается, если папка не найдена.

Если есть лучший метод, тогда используйте FileStream Я открыт для идей.

Ответы [ 2 ]

116 голосов
/ 12 сентября 2010

Использование Directory.CreateDirectory :

Метод Directory.CreateDirectory (String)

Создает все каталоги и подкаталоги, как указано впуть.

Пример:

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 возвращает часть каталога имени файла.)

15 голосов
/ 12 сентября 2010

Что-то вроде:

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