2017-03-29 6 views
1

McAfee Antivirusの最新バージョンを使用していたときに、シュレッド機能によって実行中のファイルが削除され、コンピュータを再起動するように指示されたことに気付きました。誰もがファイルを閉じずに実行中のファイルを削除する方法を知っていますか?実行中のファイルを削除する

+0

オフサイトのリソースとしてオフトピックとしてマークしています。質問はStackOverflowの範囲外にもあるようです。 – erip

+0

すみません。私はこのウェブサイトを初めて利用しています – Mx2002

+0

あなたのコメントにコメントする方法を知らない – Mx2002

答えて

0

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ファイルを登録します。

関連する問題