Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
显示文件夹';使用Swift在finder中保存内容_Swift_Directory_Finder_Nsworkspace - Fatal编程技术网

显示文件夹';使用Swift在finder中保存内容

显示文件夹';使用Swift在finder中保存内容,swift,directory,finder,nsworkspace,Swift,Directory,Finder,Nsworkspace,我想能够选择一个文件夹,并显示其内容在查找。我已经成功地选择了文件夹本身,并在文件夹中选择了一个文件。但我不知道如何显示空文件夹的内容 e、 g 文件夹A/B 我想显示文件夹B的内容(可能是空的) 我编写了以下代码: func showFolder(fileName : String) { var dataPath = homeDirectory.stringByAppendingPathComponent(fileName) var urlPath = NSURL(fileUR

我想能够选择一个文件夹,并显示其内容在查找。我已经成功地选择了文件夹本身,并在文件夹中选择了一个文件。但我不知道如何显示空文件夹的内容

e、 g

文件夹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的文件夹A。这很接近,但不完全正确

我需要能够打开文件夹B没有突出显示。我显然使用了错误的命令。

使用该方法并将
nil
作为第一个参数传递,将文件夹的路径作为第二个参数显示

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

Swift 2.1启动OS X Finder的代码

使用
selectFile
activateFileViewerSelectingURLs
选择文件

使用您的路径字符串在查找器中选择1项

NSWorkspace.sharedWorkspace().selectFile(YOUR_PATH_STRING, inFileViewerRootedAtPath: "")
第二个参数使用空字符串,如果为此参数指定空字符串“”,则会在主查看器中选择该文件


如果要选择一个或多个文件,请使用
activateFileWebSelectingUrls(\uFileUrls:[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")]

2020 | SWIFT 5.1:

func showInFinder(url: URL?) {
    guard let url = url else { return }
    
    if url.isDirectory {
        NSWorkspace.shared.selectFile(nil, inFileViewerRootedAtPath: url.path)
    }
    else {
        showInFinderAndSelectLastComponent(of: url)
    }
}

func showInFinderAndSelectLastComponent(of url: URL) {
    NSWorkspace.shared.activateFileViewerSelecting([url])
}
展品目录:

  • 文件夹的url=将显示在文件夹的查找器内容中

  • 文件的url=将在Finder文件的父级中打开并在那里选择文件

  • Url为nil=将不起任何作用

  • 文件/路径不存在=将不执行任何操作