Esempio n. 1
0
int DeleteFileEx (LPCTSTR szFilePathName, BOOL bDelPermanent, BOOL bDelLockedFiles)
{
    int ret = FL_SUCCESS;
    BOOL bSuccess;
    if (::GetFileAttributes (szFilePathName) == 0xffffffff)
        return ret;//FL_ENOFILE;

    ::SetFileAttributes (szFilePathName, FILE_ATTRIBUTE_NORMAL);
    if (bDelPermanent)
        bSuccess = ::DeleteFile (szFilePathName);
    else {
        // Delete file to recycle bin
        bSuccess = DeleteFileToRecycleBin (szFilePathName);
    }
    if (!bSuccess) {
        ret = FL_EWRITE;
        if (bDelLockedFiles) {
            // The file might be locked, try delete it at next system restart.
            ::MoveFileEx(szFilePathName, NULL, MOVEFILE_DELAY_UNTIL_REBOOT);
        }
    }
    return ret;
}
Esempio n. 2
0
BOOL
TRASH_TrashFile(LPCWSTR wszPath)
{
    TRACE("(%s)\n", debugstr_w(wszPath));
    return DeleteFileToRecycleBin(wszPath);
}