保存文件后,我想打开已保存文件的文件夹。我怎么做?非常感谢你!
答案 0 :(得分:38)
如果我理解你的问题,你想打开在Finder中保存了某些内容的文件夹吗?
这应该可以解决问题 - 它假设您有对savePanel的引用。
NSURL *fileURL = [savePanel URL];
NSURL *folderURL = [fileURL URLByDeletingLastPathComponent];
[[NSWorkspace sharedWorkspace] openURL: folderURL];
如果您从包含路径的NSString
开始,请从:
NSURL *fileURL = [NSURL fileURLWithPath: stringContainingPath];
答案 1 :(得分:32)
更好的方法是不仅要打开文件夹,还要选择已保存的文件。 NSWorkspace可以为您做到这一点:
[[NSWorkspace sharedWorkspace] activateFileViewerSelectingURLs:
@[ URLToSavedFile ]];
参数是一个URL数组,因此如果您只想显示一个文件,则只需传递一个对象的数组。
如果由于某种原因,您的目标是Mac OS X的版本低于10.6,那么您将使用旧的基于路径的方法:
[[NSWorkspace sharedWorkspace] selectFile:pathToSavedFile
inFileViewerRootedAtPath:@""];
(您希望为第二个参数传递一个空字符串,以便Finder将重复使用该文件夹的现有Finder窗口(如果有)。
答案 2 :(得分:8)
我知道这篇文章相当陈旧,但10.9你要做的是
NSString* folder = @"/path/to/folder"
[[NSWorkspace sharedWorkspace]openFile:folder withApplication:@"Finder"];