启动OSX Finder窗口,并select特定的文件

我试图以编程方式从Xcode项目启动OSX Finder窗口。 我需要打开窗口打开特定的文件夹,并自动select该文件夹中的特定文件。

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

谢谢!

Objective-C版本:

NSArray *fileURLs = [NSArray arrayWithObjects:fileURL1, /* ... */ nil]; [[NSWorkspace sharedWorkspace] activateFileViewerSelectingURLs:fileURLs]; 
 $ open -R <path-to-reveal> 

另一个AppleScript的味道 – Finder的揭示命令将打开一个窗口到包含的文件夹,并select项目。 如果有多个包含文件夹,将会打开多个Finder窗口。

 tell application "Finder" to reveal {someAlias, "path/to/POSIXfile" as POSIX file, etc} 

我发现activateFileViewerSelectingURLs不适用于优胜美地(至less在与Finder分开的空间时)。 这将导致切换到Finder的空间,但似乎没有select的URL。 使用:

  • (BOOL)selectFile:(NSString *)fullPath inFileViewerRootedAtPath:(NSString *)rootFullPath

将从全屏应用程序和selectpath切换空间。

Swift版本:

  let paths = ["/Users/peter/foo/bar.json"] let fileURLs = paths.map{ NSURL(fileURLWithPath: $0)} NSWorkspace.sharedWorkspace().activateFileViewerSelectingURLs(fileURLs) 

path打开文件时:

 NSString* path = @"/Users/user/Downloads/my file" NSArray *fileURLs = [NSArray arrayWithObjects:[NSURL fileURLWithPath:path], nil]; [[NSWorkspace sharedWorkspace] activateFileViewerSelectingURLs:fileURLs];