2015-06-09 66 views
4

我希望能夠選擇一個文件夾並在查找器中顯示其內容。我已經設法選擇文件夾本身並在文件夾中選擇一個文件。但我不知道如何顯示空文件夾的內容。使用Swift在查找器中顯示文件夾內容

例如

文件夾A /文件夾B

我想顯示的文件夾的文件夾B的內容(可能是空的)。

我寫了下面的代碼:

func showFolder(fileName : String) 
{ 
    var dataPath = homeDirectory.stringByAppendingPathComponent(fileName) 
    var urlPath = NSURL(fileURLWithPath: dataPath) 
    var selectedURLs = [urlPath!] 
    NSWorkspace.sharedWorkspace().activateFileViewerSelectingURLs(selectedURLs) 
} 

這隻能打開一個文件夾與文件夾B突出。這非常接近,但不完全正確。

我需要能夠打開沒有突出顯示的文件夾B.我顯然使用了錯誤的命令。

回答

14

使用selectFile方法並將nil作爲第一個參數,並將文件夾的路徑顯示爲第二個參數。

NSWorkspace.shared.selectFile(nil, inFileViewerRootedAtPath: "/Users/") 
6

雨燕2.1的代碼來啓動OS X的Finder

使用selectFileactivateFileViewerSelectingURLs選擇文件。在路徑查找器YOUR_PATH_STRING

NSWorkspace.sharedWorkspace().selectFile(YOUR_PATH_STRING, inFileViewerRootedAtPath: "") 

第二PARAM使用空字符串,如果你指定一個空字符串「

選擇1項」這個參數,該文件是在主瀏覽器選擇。


如果你要選擇1個或多個文件使用activateFileViewerSelectingURLs(_ fileURLs: [NSURL])

要選擇一個文件

NSWorkspace.sharedWorkspace().activateFileViewerSelectingURLs([NSURL].init(arrayLiteral: NSURL.init(fileURLWithPath: YOUR_PATH_STRING))) 

要選擇多個文件

let urls : [NSURL] = [NSURL.init(fileURLWithPath: "/Users/USER_NAME/Pictures"), 
         NSURL.init(fileURLWithPath: "/Users/USER_NAME/Music")] 

如果您提供的是項目不在同一個文件夾中選擇指定文件的更多窗口打開。

let urls : [NSURL] = [NSURL.init(fileURLWithPath: "/Users/USER_NAME/Pictures"), 
         NSURL.init(fileURLWithPath: "/Users/USER_NAME/Music"), 
         NSURL.init(fileURLWithPath: "/Users")] 
相關問題