Есть ли встроенный способ создания файла, если он не существует при его открытии?

#c# #file-io #io

#c# #file-io #io

Вопрос:

Мне нужно открыть файл, чтобы записать в него текст, есть ли встроенный способ создания файла, если он еще не существует?

Я хочу добавить к этому файлу и избежать его блокировки, пока он открыт. Но я буду записывать в файл, если в цикле есть исключение, например:

 try
{

}
catch()
{
  write to file
}
  

Ответ №1:

Вы можете использовать File.Open с FileMode.OpenOrCreate , FileMode.Append .

 using (FileStream fs = File.Open(path, FileMode.Append)) 
{
    // use fs
}
  

В любом случае, если файл был открыт с FileAccess.Write помощью или FileAccess.ReadWrite , будет создан новый файл, если он не существует.

Комментарии:

1. Режим файла. Append также создает файл, если он не существует, и лучше соответствует требованиям OP.

2. Я хочу записать текст в файл, добавить текст.

3. @codecompleting — Я предлагаю прочитать ссылки, которые я вставил в свой ответ.

4. не понял, что это ссылки.

Ответ №2:

 var fileStream = new FileStream(@"c:file.txt", FileMode.Append);
  

Это создаст файл, если он еще не существует.

Комментарии:

1. Вы должны обернуть создание потока в using инструкцию, чтобы обеспечить надлежащее удаление.