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 タプルを含む 3 番目のメンバーが含まれます。これには、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 に答える