IFileOperation :: DeleteItems不要求Windows 8上的确认(不像Windows 7)

我正在试验用IFileOperation::DeleteItemsWindows上删除文件。 在Windows 7上,当我调用IFileOperation :: PerformOperations`时,我得到一个问题,询问是否要先删除文件。 但在Windows 8上,它并不要求确认,只是将文件移动到垃圾箱。

这是我正在谈论的提示:

在这里输入图像说明

代码如下:

 result = iOperation->DeleteItems(iArray); if (SUCCEEDED(result)) { result = iOperation->SetOperationFlags(FOF_ALLOWUNDO); assert(SUCCEEDED(result)); result = iOperation->SetOwnerWindow((HWND)parentWindow); assert(SUCCEEDED(result)); result = iOperation->PerformOperations(); } 

我也试过SetOperationFlags(FOF_ALLOWUNDO | FOFX_RECYCLEONDELETE); – 效果似乎是一样的。

如果我要求不可撤消地删除一个文件,而不是被移到垃圾箱( SetOperationFlags(FOF_WANTNUKEWARNING) ),那么我会得到一个类似于Windows 7的提示。

如何在Windows 8上获得删除提示?

来自评论:

是否显示确认是用户设置。 可以从回收站的“属性”窗口进行更改。 在Windows 8系统上,该选项被禁用。 在Windows 7系统上,该选项已启用。 正如你所建议的那样,这个选项的默认值在Windows 8中已经改变了,但是你仍然可以手动启用它。