У меня есть часть кода здесь, который повреждается, если каталог не существует:
System.IO.File.WriteAllText(filePath, content);
В одной строке (или нескольких строках), действительно ли возможно проверить, не существует ли продвижение каталога в новый файл и в противном случае создать его прежде, чем создать новый файл?
Я использую.NET 3.5.
(новый 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);
Вы можете использовать File.Exists , чтобы проверить, существует ли файл, и при необходимости создайте его с помощью File.Create . Убедитесь, что вы проверили, есть ли у вас доступ для создания файлов в этом месте.
Убедившись, что файл существует, вы можете безопасно писать в него. Хотя в качестве меры предосторожности вы должны поместить свой код в блок try ... catch и поймать исключения, которые функция может вызвать, если что-то пойдет не так, как планировалось.
Дополнительная информация об основных концепциях файлового ввода-вывода .
Вы можете использовать следующий код
DirectoryInfo di = Directory.CreateDirectory(path);
Как сказал @hitec, вы должны быть уверены, что у вас есть нужные разрешения, если вы это сделаете, вы можете использовать эту строку, чтобы гарантировать существование каталога:
Directory.CreateDirectory (Path.GetDirectoryName (filePath))