【发布时间】:2012-01-11 13:10:13
【问题描述】:
您能告诉我如何使用IFileOperation::DeleteItems 删除多个文件吗?
我无法使用文件名构建 IShellItemArray。
【问题讨论】:
-
使用双零结尾的文件列表调用 SHFileOperation 容易得多。
-
SHFileOperation 在 Windows 7 中已弃用
-
SHFileOperation仍然可以正常工作。如果您不需要IFileOperation的新奇特性,那么SHFileOperation更容易。我想你知道IFileOperation在 XP 上不可用。 -
如果你真的想用
IFileOperation::DeleteItems来做,你的选项列在the documentation中。在这种情况下最简单的可能是SHCreateShellItemArrayFromIDLists。从ILCreateFromPath获取 ID 列表。第二个选择是SHCreateShellItemArrayFromDataObject,其中您的数据对象包含CF_HDROP。但听起来您对操作 shell 命名空间并不十分熟悉。你应该先熟悉一下。 Shell 项和项数组以及 ID 列表非常基础。 -
我知道 IFileOperation 在 XP 上不可用,但我想使用 IFileOperation,但我不知道如何从文件名列表中构建 IShellItemArray。
标签: c++ winapi shell windows-7 sdk