1

在我维护的代码中,我遇到了:

from win32com.shell import shell, shellcon
# ...
result,nAborted,mapping = shell.SHFileOperation(
        (parent,operation,source,target,flags,None,None))

Python27\Lib\site-packages\win32comext\shell\(注意 win32comext)中,我只有一个shell.pyd二进制文件。

  1. 删除的 shell.SHFileOperation 的返回值是多少(operation=FO_DELETE在上面的调用中)?shell.pyd 的代码在哪里?
  2. 我可以从该返回值中获取实际删除的文件列表,还是必须事后手动检查?

编辑:接受的答案回答 Q1 - 查看pywin32-219\com\win32comext\shell\src\shell.cpp我看到SHFileOperationstatic PyObject *PySHFileOperation()的代表的来源,它似乎没有返回有关哪些文件未能被删除的任何信息- 所以我猜 Q2 的答案是“否”。

4

1 回答 1

1

ActiveState Python帮助包含SHFileOperation 描述

shell.SHFileOperation

int, int = SHFileOperation(操作)

复制、移动、重命名或删除文件系统对象。


参数

操作:SHFILEOPSTRUCT

定义要执行的操作。


返回值

结果是一个元组,其中包含函数本身的 int 结果,以及操作后 fAnyOperationsAborted 成员的结果。如果 Flags 包含 FOF_WANTMAPPINGHANDLE,则返回的元组将有第三个成员,其中包含一个 2 元组序列,其中包含重命名文件的旧文件名和新文件名。如果指定了 FOF_RENAMEONCOLLISION 并且实际发生了一些文件名冲突,这将只有任何内容。

源代码可以在这里下载:http: //sourceforge.net/projects/pywin32/files/pywin32/Build%20219/ (pywin32-219.zip)

解压到.\pywin32-219\com\win32comext\shell\src\

于 2015-03-16T12:37:36.370 回答