2015-06-09 37 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")] 
相关问题