delete-fileantivirusmcafee

Deleting running files


When I used the latest version of McAfee Antivirus, I noticed that the shred feature can delete running files and then asks you to restart your computer. Do anyone know how does it delete running files without closing them?


Solution

  • It may depend on the OS and file system types. On Linux and Unix like, deleting a file a just removing an entry from a folder. The file is actually deleted on last close if no folder entry points to it. So you can safely delete a file even if it is opened in another process.

    On Windows the MSDN says:

    The DeleteFile function fails if an application attempts to delete a file that has other handles open for normal I/O or as a memory-mapped file

    Usual tricks include:

    BOOL WINAPI MoveFileEx(
      _In_     LPCTSTR lpExistingFileName,
      _In_opt_ LPCTSTR lpNewFileName,
      _In_     DWORD   dwFlags
    );
    

    ...
    lpNewFileName [in, optional]
    The new name of the file or directory on the local computer.
    ...
    If dwFlags specifies MOVEFILE_DELAY_UNTIL_REBOOT and lpNewFileName is NULL, MoveFileEx registers the lpExistingFileName file to be deleted when the system restarts.