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