我有一个命令行实用程序,可在应用程序的文件目录中生成一个文件。我可以看到文件在那里,但是openFileInput仍然找不到它。
文件名不是很长,并且不包含任何空格或特殊字符。这是一个mp4文件。
此代码生成文件:
val byteArray = ByteArray(1024)
try {
val processBuilder = ProcessBuilder().command(
filesDir.absolutePath + File.separator + "start.sh",
"args")
).redirectErrorStream(true)
val process = processBuilder.start()
val inputStream = process.getInputStream()
while (inputStream.read(byteArray) !== -1) {
println("Debug: " + String(byteArray))
}
inputStream.close()
process.waitFor()
} catch (ex: IOException) {
ex.printStackTrace()
}
这是发生崩溃的行:
var copyToSd = this.openFileInput("myfile.mp4").readBytes()
答案 0 :(得分:0)
那太不可思议了...
我使用的命令行工具通过命令行变量接受文件名。我犯的错误是这样给参数:
filesDir.absolutePath + File.separator + "start.sh",
"arg",
"filenameparameter")
代替此:
index.js
那行得通,但在文件开头创建了一个额外的空间!该文件在那里,但由于存在额外空间而无法找到。
很棒