python win32com shell.SHFileOperation - any way to get the files that were actually deleted?

荒凉一梦 提交于 2020-01-17 04:27:07

问题


In the code I maintain I run across:

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

In Python27\Lib\site-packages\win32comext\shell\ (note win32comext) I just have a shell.pyd binary.

  1. What is the return value of shell.SHFileOperation for a deletion (operation=FO_DELETE in the call above) ? Where is the code for the shell.pyd ?
  2. Can I get the list of files actually deleted from this return value or do I have to manually check afterwards ?

EDIT: accepted answer answers Q1 - having a look at the source of pywin32-219\com\win32comext\shell\src\shell.cpp I see that static PyObject *PySHFileOperation() delegates to SHFileOperation which does not seem to return any info on which files failed to be deleted - so I guess answer to Q2 is "no".


回答1:


ActiveState Python help contains SHFileOperation description:

shell.SHFileOperation

int, int = SHFileOperation(operation)

Copies, moves, renames, or deletes a file system object.


Parameters

operation : SHFILEOPSTRUCT

Defines the operation to perform.


Return Value

The result is a tuple containing int result of the function itself, and the result of the fAnyOperationsAborted member after the operation. If Flags contains FOF_WANTMAPPINGHANDLE, returned tuple will have a 3rd member containing a sequence of 2-tuples with the old and new file names of renamed files. This will only have any content if FOF_RENAMEONCOLLISION was specified, and some filename conflicts actually occurred.

Source code can be downloaded here: http://sourceforge.net/projects/pywin32/files/pywin32/Build%20219/ (pywin32-219.zip)

Just unpack and go to .\pywin32-219\com\win32comext\shell\src\



来源:https://stackoverflow.com/questions/29053189/python-win32com-shell-shfileoperation-any-way-to-get-the-files-that-were-actua

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!