【问题标题】:How to have access to files via shell commands in mac os x application?如何在 mac os x 应用程序中通过 shell 命令访问文件?
【发布时间】:2017-07-13 05:09:54
【问题描述】:

我是开发 mac 应用程序的新手。 (但我为 ios 做了很多工作)

首先我想要一个窗口,上面有一个按钮。当用户单击该按钮时,它应该触发一个操作,该操作将在用户之前在应用程序中拖放的文件夹内运行一些 shell 命令。

例如 用户将在我的应用程序中拖放一些文件夹,应用程序应在此文件夹中创建 gemfile。

这是我运行 shell 的当前版本,第一个命令是 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")
  }
}

是否有一些限制。如何向用户请求我的应用可以访问他的某些文件?

【问题讨论】:

  • <pathToFolder> ~/Downloads/ABCAcura/ 还是一个论点?
  • file:///Users/klemen/Downloads/ABCAcura/ 好的,我明白了,这可能是前缀错误的问题。

标签: swift xcode macos shell cocoa


【解决方案1】:

您应该使用~/Downloads/ABCAcura 而不是file:///...file:/// 是协议 (URL) 而不是文件路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-28
    • 1970-01-01
    • 2011-11-05
    相关资源
    最近更新 更多