启动OSX Finder窗口,选择特定文件

sim*_*n.d 41 macos applescript finder objective-c

我正在尝试以编程方式从Xcode项目启动OSX Finder窗口.我需要窗口打开到特定文件夹,并自动选择该文件夹中的特定文件.

有没有人知道如何在目标c,applescript或Finder命令行参数中执行此操作?

谢谢!

Wev*_*vah 85

Objective-C版本:

NSArray *fileURLs = [NSArray arrayWithObjects:fileURL1, /* ... */ nil];
[[NSWorkspace sharedWorkspace] activateFileViewerSelectingURLs:fileURLs];
Run Code Online (Sandbox Code Playgroud)

  • 效果很好.我唯一的评论是该数组是NSUrl的数组.鉴于数组的名称是"fileURL",这似乎很明显,但我出于某种原因将NSString放入路径中,并且相当惊人地崩溃.而是从路径字符串构建NSUrl(NSURL*url = [NSURL fileURLWithPath:fileToShow isDirectory:dir];)然后在数组中包含它完美地工作. (5认同)

Mat*_*ure 17

$ open -R <path-to-reveal>
Run Code Online (Sandbox Code Playgroud)

  • 这适用于单个文件,但不适用于多个文件:`open -R foo.jpg bar.jpg` 不会同时选择 `foo.jpg` 和 `bar.jpg`。 (3认同)
  • +1因为每个人都可以从命令行执行此操作! (2认同)

小智 7

另一个AppleScript风格 - Finder的揭示命令将打开包含文件夹的窗口并选择项目.如果有多个包含文件夹,将打开多个Finder窗口.

tell application "Finder" 
   to reveal {someAlias, "path/to/POSIXfile" as POSIX file, etc}
Run Code Online (Sandbox Code Playgroud)