2010-01-04 199 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"];