我目前正在将C ++命令行工具移植到Cocoa-Application格式,以使其更方便,并将其与我最近制作的其他几个实用程序和小程序捆绑在一起。有问题的工具需要搜索特定目录及其所有子目录,以便它可以创建现有文件列表以供其余的执行。
在C ++中,我可以通过调用运行命令的bash脚本轻松完成此任务:files=$(find <dir> type -f); echo "$files" > ./<reference file>
。现在我想知道是否有任何等效的命令,以便我可以在swift中执行相同的操作,将文件保存在bundle中,或者从&#34; Resources&#34;运行脚本。目录,以便我不必通过将二进制文件安装到设置位置来卷积,然后使用Swift调用该二进制文件来调用脚本。
如果可能的话,也可以通过系统调用直接从Swift内部运行该命令。
BTW我在XCode 8.0上使用Swift 3.0,如果它是相关的。谢谢!
答案 0 :(得分:1)
在Swift中运行子进程的方法是类NSTask,shell脚本可以在bindle中的资源中使用NSBundle来查找它的路径。
然而,最好使用NSFileManager在Swift中重写该命令以通过文件系统进行fgo
答案 1 :(得分:0)
你可以做类似的事情:
import Foundation
for arg in CommandLine.arguments.dropFirst() {
let fileManager = FileManager()
let en=fileManager.enumerator(atPath: arg)
while let fileName = en?.nextObject() as? String {
// if fileName.hasSuffix("txt") { // if you want to test for file extension
print(arg+"/"+fileName)
// }
}
}