Windowsでファイルロックを無効にする方法

Windowsでファイルロックを無効にする方法

Linux システムのようにロックされたファイルを上書きできるように、Windows でファイル ロックを無効にするにはどうすればよいでしょうか?

私はプラグインを開発しています。これは dll です。再度コンパイルする前に、それをロードしたプログラムで常にアンロードする必要があります。常にコンパイルして、後でアンロード/再度ロードするだけで再ロードできれば、作業が大幅に軽減されます。Linux ではこれは問題になりません。コンパイラはプラグインをオーバーライドするだけで、次にプラグインを開いたときに新しいバージョンが使用されます。Windows には書き込みロックがあるため、コンパイラはプラグインを書き込むことができず、中止します。

答え1

実行可能ファイル/ライブラリ ファイルのロックだけを無効にすることはできません。

ただし、移動または名前変更使用中のファイルが存在するため、ビルド プロセスで既存の DLL を別の場所に移動し、その代わりに新しい DLL をコンパイルします。


OSのさまざまな部分がそれを前提としているため、隠しスイッチを追加しなかった可能性が非常に高いです。常にオンになりますたとえば、ファイルシステムのコードでは、ファイルへのリンクが常に少なくとも 1 つあると想定されている可能性があります (そのため、最後のリンクを削除するとすぐにスペースが解放されます)。そのため、使用中のファイルを強制的に削除すると、2 つのファイルが同じディスク領域を使用するなど、さまざまな種類のファイルシステムの破損が発生する可能性があります。

そうは言っても、古くて新しいものかつて、WinNT カーネルで Linux スタイルのファイル削除を許可するのは実際にはそれほど難しくなく、互換性の問題を回避するためにそうしなかっただけだと書いていました。

関連情報