通过PyObjC在Mac OS X中使用ScriptingBridge恢复废纸篓项目

时间:2010-09-04 08:16:07

标签: macos pyobjc scripting-bridge

我正试图找出一种通过PyObjC使用ScriptingBridge恢复(放回)垃圾箱的方法。

没有足够的文档here

from AppKit import NSURL
from ScriptingBridge import SBApplication
targetfile = NSURL.fileURLWithPath_(f.realpath)
finder = SBApplication.applicationWithBundleIdentifier_("com.apple.Finder")
trash_items = finder.trash.items()

有什么建议吗?

谢谢!

PS: 我正在使用Snow Leopard。

1 个答案:

答案 0 :(得分:1)

在处理来自Python的AppleScript个应用程序时,您几乎总能发现使用appscript而不是Apple的ScriptingBridgePyObjC更容易。一种方法:

from appscript import *
# move file to trash
app("Finder").move(mactypes.File(f.realpath),to=its.trash)
# get names of all items in the Trash
app("Finder").trash.items.name.get()
# move file x.txt from Trash to Desktop Folder
app("Finder").trash.files["x.txt"].move(to=its.desktop)

诀窍是获得正确的Apple Event引用所需的文件和文件夹。欺骗一点并获取垃圾文件夹的路径并在其上使用标准文件系统操作可能更容易:

>>> app("System Events").trash.POSIX_path()
u'/Users/nad/.Trash'