Восстановление элемента корзины с помощью ScriptingBridge в Mac OS X через PyObjC - PullRequest
0 голосов
/ 04 сентября 2010

Я пытаюсь найти способ восстановить (убрать) корзину, используя ScriptingBridge через PyObjC.

Недостаточно документации здесь

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: Я использую снежного барса.

1 Ответ

1 голос
/ 04 сентября 2010

При работе с AppleScript -поддерживаемыми приложениями из Python почти всегда будет проще использовать appscript , чем ScriptingBridge или PyObjC от Apple.Один из способов сделать это:

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'
...