2017-02-22 101 views
0

Im новое для разработки приложений для Mac. (но у меня много работы для ios)Как получить доступ к файлам с помощью команд оболочки в приложении mac os x?

Для начала я хочу иметь окно, на котором есть кнопка. Когда пользователь нажимает на кнопку, он должен вызывать действие, которое будет запускать некоторые команды оболочки внутри папки, которую пользователь перетащил & в приложение раньше.

Например, Пользователь перетащит некоторую папку внутри моего приложения, и приложение должно создать gemfile внутри этой папки.

Вот моя текущая версия, где я бег оболочки и первая команда является cd <pathToFolder>, но выход /usr/bin/cd: line 4: cd: file:///Users/klemen/Downloads/ABCAcura/: No such file or directory

Вот мой код:

@IBAction func handleCreateGemfileButton(_ sender: NSButton) { 

    let pipe = Pipe() 
    let process = Process() 
    process.launchPath = "/bin/bash" 
    process.arguments = ["cd", projectURL.absoluteString] 
    process.standardOutput = pipe 
    let file = pipe.fileHandleForReading 
    process.launch() 

    if let result = NSString(data: file.readDataToEndOfFile(), encoding: String.Encoding.utf8.rawValue) { 
    print(result as String) 
    } 
    else { 
    print("error") 
    } 
} 

Есть ли какое-то ограничение. Как можно запросить у пользователя, чтобы у моего приложения был доступ к некоторым его файлам?

+0

Является ли '' '~/Downloads/ABCAcura /' или это аргумент? – paper1111

+0

файл: /// Пользователи/klemen/Downloads/ABCAcura/ОК, я вижу, это, вероятно, проблема, что префикс неверен. –

ответ

1

Вы должны использовать ~/Downloads/ABCAcura вместо file:///..., file:/// - это протокол (URL), а не путь к файлу.