1
McAfee Antivirusの最新バージョンを使用していたときに、シュレッド機能によって実行中のファイルが削除され、コンピュータを再起動するように指示されたことに気付きました。誰もがファイルを閉じずに実行中のファイルを削除する方法を知っていますか?実行中のファイルを削除する
McAfee Antivirusの最新バージョンを使用していたときに、シュレッド機能によって実行中のファイルが削除され、コンピュータを再起動するように指示されたことに気付きました。誰もがファイルを閉じずに実行中のファイルを削除する方法を知っていますか?実行中のファイルを削除する
OSやファイルシステムの種類によって異なる場合があります。 LinuxやUnixのように、ファイルを削除すると、フォルダからエントリを削除するだけです。フォルダエントリが指していない場合、ファイルは最後のクローズ時に実際に削除されます。したがって、ファイルが別のプロセスで開かれていても、ファイルを安全に削除できます。 Windowsでは
はMSDN氏は述べています。アプリケーションは、通常のI/Oまたはメモリマップドファイル
などのオープン他のハンドルを持っているファイルを削除しようとした場合DeleteFileを機能に障害が発生しました
通常のトリックは次のとおりです。
- そのファイルにハンドルを持つすべてのプロセスを終了しようとします。実行可能ファイルの場合は、通常、そのインスタンスをすべて終了することを意味します。
- 次回の再起動時にファイルを削除対象としてマークします。 McAfeeがコンピュータを再起動するよう求めていると言えば、おそらくそのオプションが使用されます。
MoveFileEx
WINAPI機能にはそのための手段があります。 MSDN pageからの抽出物は、[オプション、中]BOOL WINAPI MoveFileEx( _In_ LPCTSTR lpExistingFileName, _In_opt_ LPCTSTR lpNewFileName, _In_ DWORD dwFlags );
...
lpNewFileName
ローカルコンピュータ上のファイルまたはディレクトリの新しい名前を(私を強調します)。
...
dwFlagsがMOVEFILE_DELAY_UNTIL_REBOOTを指定し、lpNewFileNameがNULLの場合、MoveFileExは、システムがを再起動したときに削除されるlpExistingFileNameファイルを登録します。
オフサイトのリソースとしてオフトピックとしてマークしています。質問はStackOverflowの範囲外にもあるようです。 – erip
すみません。私はこのウェブサイトを初めて利用しています – Mx2002
あなたのコメントにコメントする方法を知らない – Mx2002