Merge pull request #3912 from tylergibson/FixingMoveItemToTrash-Windows7

Adding check for Windows version and alternate flags for Windows Vista/7
This commit is contained in:
Cheng Zhao 2015-12-24 15:32:09 +08:00
commit 6aa3464aad

View file

@ -340,13 +340,26 @@ bool MoveItemToTrash(const base::FilePath& path) {
// Elevation prompt enabled for UAC protected files. This overrides the // Elevation prompt enabled for UAC protected files. This overrides the
// SILENT, NO_UI and NOERRORUI flags. // SILENT, NO_UI and NOERRORUI flags.
if (FAILED(pfo->SetOperationFlags(FOF_NO_UI |
FOF_ALLOWUNDO | if (base::win::GetVersion() >= base::win::VERSION_WIN8) {
FOF_NOERRORUI | // Windows 8 introduces the flag RECYCLEONDELETE and deprecates the
FOF_SILENT | // ALLOWUNDO in favor of ADDUNDORECORD.
FOFX_SHOWELEVATIONPROMPT | if (FAILED(pfo->SetOperationFlags(FOF_NO_UI |
FOFX_RECYCLEONDELETE))) FOFX_ADDUNDORECORD |
return false; FOF_NOERRORUI |
FOF_SILENT |
FOFX_SHOWELEVATIONPROMPT |
FOFX_RECYCLEONDELETE)))
return false;
} else {
// For Windows 7 and Vista, RecycleOnDelete is the default behavior.
if (FAILED(pfo->SetOperationFlags(FOF_NO_UI |
FOF_ALLOWUNDO |
FOF_NOERRORUI |
FOF_SILENT |
FOFX_SHOWELEVATIONPROMPT)))
return false;
}
// Create an IShellItem from the supplied source path. // Create an IShellItem from the supplied source path.
base::win::ScopedComPtr<IShellItem> delete_item; base::win::ScopedComPtr<IShellItem> delete_item;