2017-01-26 90 views
-1

我试图通过运行终端命令在Finder中显示隐藏文件。问题是它看起来像defaults write com.apple.finder AppleShowAllFiles TRUE有多个启动路径。当我在终端运行which命令,然后运行命令时,它给了我三条路径:/usr/bin/defaults,/usr/bin/write/usr/bin/TRUE。我无法将全部三个设置为该命令的启动路径,因为.launchPath不接受数组。使用多个启动路径来运行终端命令swfit

我该如何运行这个命令?

编辑:问题是我没有把参数分隔成单独的字符串。此代码的工作原理:

@IBAction func showAllFiles(_ sender: NSMenuItem) { 
    let task = Process() 
    task.launchPath = "/usr/bin/defaults" 
    task.arguments = ["write", "com.apple.finder", "AppleShowAllFiles", "TRUE"] 
    task.launch() 
    task.waitUntilExit() 
} 
+0

顺便说一句,[XtraFinder](https://www.trankynam.com/xtrafinder/)允许你添加一个按钮到取景器工具栏,它可以让你显示/隐藏隐藏文件 – Alexander

+0

你可以添加swift代码如何创建任务 - 否则它看起来不快捷相关 – muescha

回答

0

您正在寻找/usr/bin/defaults。你得到这种输出的原因是因为下面的命令:

which defaults write com.apple.finder AppleShowAllFiles TRUE 

就像是这样做的:

which defaults 
which write 
which com.apple.finder 
which AppleShowAllFiles 
which TRUE 

它打印:

在/ usr/bin中/默认

在/ usr/bin中/写

(什么)

(无)

(无)

的/ usr /斌/ TRUE

+0

这很好。如何在Swift中运行'defaults写入com.apple.finder AppleShowAllFiles TRUE'然后呢? – Nate

+0

@Nate请参阅https://developer.apple.com/reference/foundation/process – Alexander

+0

@Nate下面是一个示例:http://stackoverflow.com/a/26973384/3141234 – Alexander