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