3

在我的 Cocoa 应用程序中,我试图检索已在 Finder 窗口中选择的文件列表。我找到了以下方法来做到这一点,但速度慢得令人难以忍受。

FinderApplication * finder =
    [SBApplication applicationWithBundleIdentifier:@"com.apple.finder"];

SBElementArray * selection = [[finder selection] get];

NSArray<NSString*> * items = [selection arrayByApplyingSelector:@selector(URL)];
// now items contains the URLs as strings of all selected items

从时间上讲,最昂贵的电话是

SBElementArray * selection = [[finder selection] get];

当在大量文件上进行选择时,该方法会挂起很长时间,在处理少量文件时甚至表现不佳。

有没有更好的方法在最前面的 Finder 窗口中获取所有选定文件的 URL?

我需要有文件 URL,以便我可以对这些文件执行操作。

4

1 回答 1

0

你可以使用苹果脚本

tell application "Finder"
    get selection
end tell  

或者

osascript -e "tell application \"Finder\" to return selection"
于 2013-07-22T10:49:58.843 回答