SHFILEOPSTRUCT はどこ?

python の pywin32 でファイルの操作をしようと思ったが、肝心の SHFILEOPSTRUCT が見つからない。

検索してみたら、普通のタプルを使えばいいことが発覚。

SHFILEOPSTRUCT is just a tuple, with the elementslisted in docs.

http://www.mail-archive.com/python-list@python.org/msg38171.html

SHFILEOPSTRUCT は普通のタプルだよ。文書どおりに要素を並べればいい。

ごみ箱へどぞー

from win32com.shell import shell, shellcon

def delete(*filenames):
    # 削除対象を \0 で連結
    opfiles = '\0'.join(filenames)

    # 削除の進行状況なし&ごみ箱行きフラグ
    opflags = shellcon.FOF_SILENT | \
              shellcon.FOF_ALLOWUNDO

    # 構造体作成
    operation = (
        None,  # hwnd
        shellcon.FO_DELETE,  # wFunc
        opfiles,  # From
        None,  # To
        opflags,  # flags
        None,  # NameMappings
        None,  # ProgressTitle
        )

    # GO!
    shell.SHFileOperation(operation)


# フルパスで指定すべし
delete('d:\\abc\\a.txt', 'd:\\def\\b.py')

エラー処理はまだ実装してない。