FileStream и создание папок

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

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

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

Если есть лучший метод, то с помощью FileStream я открыт для идей.

Ответ 1

Используйте Directory.CreateDirectory:

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

Ответ 2

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

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