.NETのプロセスによってロックされているファイルをロック解除するにはどうすればよいですか[複製]
-
04-07-2019 - |
質問
この質問にはすでに回答があります:
- 削除するファイルのロックを解除 2つの答え
アプリケーションで使用したすべての一時ファイルをクリーンアップしたいのですが、問題はすべての一時ファイルが自分の制御下にないことです。プログラムで削除するには、ロックを解除します。
解決
this 記事。相互運用機能を使用しても、C#でネイティブにこれを行うのは難しいと思いますが、C ++ / CLIラッパーアセンブリを作成することは良い妥協かもしれません。また、これを機能させるには、ユーザーがSE_DEBUG権限を持っている必要があることに注意してください。
他のヒント
私もこれに苦労しましたが、結局Unlockerのコマンドラインの実装に砲撃しました。私の場合、毎日何回も実行する必要があり、結局何の問題もなく何千ものファイルのロックが解除されます。
確かに、アプリケーションが所有する一時ファイルをクリーンアップしたいのであれば、これらのファイルのロックを解除して削除する完全な制御権があります!
アプリケーションが所有しているかどうかにかかわらず、すべてのTEMPファイルを削除する場合は、十分に注意する必要があります。元のアプリケーションは、おそらくファイルを使用するためにロックを適用しました!
本当に必要な場合は、C#では難しい既存のツールの機能を複製しようとするのではなく、常にコマンドラインアプリケーションを生成できます。
こちらをご覧ください thread 。必要なことを行うのに十分な情報がありますが、推奨されません。
所属していません StackOverflow