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; }
BOOL TRASH_TrashFile(LPCWSTR wszPath) { TRACE("(%s)\n", debugstr_w(wszPath)); return DeleteFileToRecycleBin(wszPath); }