我试图发出一个系统命令来运行FreeSurfer的mri_convert.您并不需要了解mri_convert是什么,因为您必须了解进程如何从scala转移到系统.代码在很大程度上起作用,但是当我尝试发送带有空格的文件路径时,它会中断(即使在我用空格替换之后\).我将在下面发布我的代码,然后使用不包含路径空间的目录的文件输出,然后从带有空格的目录的文件路径发布.
def executeAll(): Boolean = {
while (dataBuf.length != 0) {
val dir = directory + "subjects/" + dataBuf.first.subjectID + "/mri/orig"
val expr = """\s+""".r
val path = expr.replaceAllIn((dataBuf.first.path), """\\ """)
val folder = new File(dir)
val execute = freesurfer + """bin/mri_convert -it dicom -ot mgz -ii """ + path + """ -oi """ + dir + """/001.mgz"""
if (folder.mkdirs()) {
val command = Process(execute, folder, ("FREESURFER_HOME", freesurfer))
val exitCode = command.!
println(command.toString())
}
dataBuf.remove(dataBuf.indexOf(dataBuf.first))
}
println("DONE")
dataListView.listData …Run Code Online (Sandbox Code Playgroud)