Очистить содержимое заблокированного файла журнала в C#
Есть много объяснений, как очистить файл журнала.
Подобно:
File.WriteAllText(activeTab.FileName, string.Empty);
Но этот пример и другие примеры, которые я обнаружил, имеют одну и ту же проблему. Это не работает, если файл журнала в данный момент заблокирован другим процессом.
В ruby есть задача, которую я могу использовать rake log:clear
которые не удаляются, просто очистите файлы журнала.
Я обнаружил также, что я могу это с помощью Powershell с помощью clc <filename>
, Источники доступны здесь и сейчас:
Но, честно говоря, я не понимаю, как работает этот код, а также он наследует от других классов.
Существует ли реализация C#, которую я могу использовать в любой обычной программе / классе?
1 ответ
Решение
Оказывается, что файл может быть очищен в моем случае, используя этот фрагмент:
var stream = new FileStream(FileName, FileMode.Truncate, FileAccess.ReadWrite, FileShare.ReadWrite | FileShare.Delete);
stream.Close();