2010-01-04 143 views

回答

33

如果我理解你的问题,你想打开保存在Finder中的文件夹?

这应该做的 - 它假定你有一个savePanel的引用。

NSURL *fileURL = [savePanel URL]; 
NSURL *folderURL = [fileURL URLByDeletingLastPathComponent]; 
[[NSWorkspace sharedWorkspace] openURL: folderURL]; 

如果你开始与包含路径的NSString,然后开始:

NSURL *fileURL = [NSURL fileURLWithPath: stringContainingPath]; 
28

更妙的是不只是打开文件夹,但保存的文件选择。 NSWorkspace能为你做:

[[NSWorkspace sharedWorkspace] activateFileViewerSelectingURLs:@[ URLToSavedFile ]]; 

的参数是URL的数组,所以如果你有你想显示只有一个文件,你只需通过一个对象的数组。

如果由于某种原因,你的目标一个版本的Mac OS X的年纪比10.6,你会使用,而不是旧的基于路径的方法:

[[NSWorkspace sharedWorkspace] selectFile:pathToSavedFile inFileViewerRootedAtPath:@""]; 

(你想传递一个空字符串的第二个参数,以便查找将重用现有的Finder窗口的文件夹,如果有的话)。

4

我知道这个帖子是相当老,但与10.9您想要做的是

NSString* folder = @"/path/to/folder" 
[[NSWorkspace sharedWorkspace]openFile:folder withApplication:@"Finder"];