Как создать каталог, если он не существует для создания файла?

У меня есть фрагмент кода, который разбивается, если каталог не существует:

System.IO.File.WriteAllText(filePath, content);

В одной строке (или нескольких строках) можно проверить, не существует ли каталог, ведущий к новому файлу, а если нет, создать его перед созданием нового файла?

Я использую .NET 3.5.

Ответ 1

(new FileInfo(filePath)).Directory.Create() Перед записью в файл.

или

System.IO.FileInfo file = new System.IO.FileInfo(filePath);
file.Directory.Create(); // If the directory already exists, this method does nothing.
System.IO.File.WriteAllText(file.FullName, content);

Ответ 2

Вы можете использовать следующий код

  DirectoryInfo di = Directory.CreateDirectory(path);

Ответ 3

Как сказал @hitec, вы должны быть уверены, что у вас есть права, если вы это сделаете, вы можете использовать эту строку для обеспечения существования каталога:

Directory.CreateDirectory(Path.GetDirectoryName(filePath))

Ответ 4

Вы можете использовать File.Exists, чтобы проверить, существует ли файл и создать его с помощью File.Create, если это необходимо. Убедитесь, что у вас есть доступ к созданию файлов в этом месте.

Как только вы уверены, что файл существует, вы можете безопасно писать его. Хотя в качестве меры предосторожности вы должны поместить свой код в блок try... catch и поймать исключения, которые функция, вероятно, будет повышать, если все будет не так, как планировалось.

Дополнительная информация для основных концепций ввода-вывода файлов.

Ответ 5

var filePath = context.Server.MapPath(Convert.ToString(ConfigurationManager.AppSettings["ErrorLogFile"]));

var file = new FileInfo(filePath);

file.Directory.Create(); Если каталог уже существует, этот метод ничего не делает.

var sw = new StreamWriter(filePath, true);

sw.WriteLine(Enter your message here);

sw.Close();