Как создать каталог, если он не существует для создания файла?
У меня есть фрагмент кода, который разбивается, если каталог не существует:
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();