Очистить содержимое заблокированного файла журнала в C#

Есть много объяснений, как очистить файл журнала.

Подобно:

File.WriteAllText(activeTab.FileName, string.Empty);

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

В ruby ​​есть задача, которую я могу использовать rake log:clear которые не удаляются, просто очистите файлы журнала.

Я обнаружил также, что я могу это с помощью Powershell с помощью clc <filename>, Источники доступны здесь и сейчас:

https://github.com/PowerShell/PowerShell/blob/c1faf1e6e10fc1ce45e84ef6f49ae7136c67a111/src/Microsoft.PowerShell.Commands.Management/commands/management/ClearContentCommand.cs

Но, честно говоря, я не понимаю, как работает этот код, а также он наследует от других классов.

Существует ли реализация C#, которую я могу использовать в любой обычной программе / классе?

1 ответ

Решение

Оказывается, что файл может быть очищен в моем случае, используя этот фрагмент:

  var stream = new FileStream(FileName, FileMode.Truncate, FileAccess.ReadWrite, FileShare.ReadWrite | FileShare.Delete);
  stream.Close();
Другие вопросы по тегам