Показать содержимое папки в finder с помощью 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)
}

это открывает только папку A с папкой B выделенный. Это очень близко, но не совсем правильно.

Мне нужно иметь возможность открывать папку B без выделения. Очевидно, я использую не ту команду.

2 ответов


использовать selectFile метод и pass nil как первый аргумент и путь к папке, которая будет показана как второй аргумент.

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

Swift 2.1 код для запуска OS X Finder

использовать selectFile или activateFileViewerSelectingURLs для выбора файлов.

выберите 1 элемент в finder с путем YOUR_PATH_STRING

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

второй параметр использует пустую строку, если для этого параметра указать пустую строку"", файл будет выбран в главном средстве просмотра.


если вы хотите выбрать 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")]