python win32com shell.SHFileOperation - 以任何方式获取实际删除的文件?

时间:2015-03-14 19:23:17

标签: python-2.7 pywin32 shfileoperation

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

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. 我可以从此返回值中获取实际删除的文件列表,还是必须在之后手动检查?
  3. 编辑:接受答案答案Q1 - 查看pywin32-219\com\win32comext\shell\src\shell.cpp的来源我看到static PyObject *PySHFileOperation()委托给SHFileOperation,但似乎没有返回任何有关哪些文件失败的信息被删除 - 所以我猜Q2的答案是“不”。

1 个答案:

答案 0 :(得分:1)

ActiveState Python帮助包含SHFileOperation description

  

shell.SHFileOperation

     

int,int = SHFileOperation(operation)

     

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

     
     

参数

     

操作:SHFILEOPSTRUCT

     

定义要执行的操作。

     
     

返回值

     

结果是包含int结果的元组   函数本身,以及fAnyOperationsAborted成员的结果   手术后。如果Flags包含FOF_WANTMAPPINGHANDLE,则返回   元组将包含一个包含2元组序列的第3个成员   重命名文件的旧文件名和新文件名。这只会有   如果指定了FOF_RENAMEONCOLLISION,则为内容,以及一些文件名   实际上发生了冲突。

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

只需解压缩并转到.\pywin32-219\com\win32comext\shell\src\