ログファイルを空にする方法については、多くの説明があります。C#でロックされたログファイルの内容をクリアする
のように:私が見つけ
File.WriteAllText(activeTab.FileName, string.Empty);
しかし、この例および他の例はすべて同じ問題を抱えています。ログファイルが現在別のプロセスによってロックされている場合は動作しません。
ルビーでは、私はを使用することができますが、削除しないでログファイルを空にするというタスクがあります。
私はPowershellでclc <filename>
を使ってこれを行うことができます。
しかし、正直なところ、私はそれが他のクラスから継承も、このコードがどのように動作するか理解していない: ソースが今ここにご利用いただけます。
一般的なプログラム/クラスで使用できるC#の実装はありますか?
ファイルがロックされている場合、またはそれを変更( "空")する。あなた自身のロールを張そうとする以上のことを私が推薦する第三者ロギングライブラリがたくさんあります。ライブラリを使用すると、これらのライブラリのいくつかが私が覚えていて、非常に堅牢で設定可能な限り、心配する必要はありません。私の個人的なお気に入りは[Log4Net](https://logging.apache.org/log4net/)ですが、[NLog](http://nlog-project.org/)も非常に人気があります。 – Igor
IMO、これは妥当で安全なことではありません。ファイルロックを保持している誰がそれを解放するのかを理解する必要があります。 – jlew
他のプロセスのファイルロックを破ることはできません。あなたができることはどこかでデータを待ち行列に入れ、ロックが解除されるのを確認してから、あなたのアクション(編集/削除/クリア)を実行します。 –