it-swarm-ru.tech

Как я могу очистить содержимое файла?

Мне нужно очищать содержимое определенного файла каждый раз, когда запускаются приложения. Как мне это сделать?

70
olive

Вы можете использовать метод File.WriteAllText .

System.IO.File.WriteAllText(@"Path/foo.bar",string.Empty);
114
The Scrum Meister

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

FileStream fileStream = File.Open(<path>, FileMode.Open);

/* 
 * Set the length of filestream to 0 and flush it to the physical file.
 *
 * Flushing the stream is important because this ensures that
 * the changes to the stream trickle down to the physical file.
 * 
 */
fileStream.SetLength(0);
fileStream.Close(); // This flushes the content, too.
70
Abhay Jain

Используйте FileMode.Truncate каждый раз, когда вы создаете файл. Также поместите File.Create внутри trycatch.

10
sajoshi

Самый простой способ сделать это, возможно, удалить файл через ваше приложение и создать новый с тем же именем ... еще проще - просто перезаписать его новым файлом.

2
Kartikya

Попробуйте использовать что-то вроде

File.Create

Создает или перезаписывает файл по указанному пути.

1
Adriaan Stander

Самый простой способ это:

File.WriteAllText(path, string.Empty)

Однако я рекомендую вам использовать FileStream, поскольку первое решение может выдать UnauthorizedAccessException

using(FileStream fs = File.Open(path,FileMode.OpenOrCreate, FileAccess.ReadWrite))
{
     lock(fs)
     {
          fs.SetLength(0);
     }
}
0
Mohammad Albay