Android的openFileInput说没有这样的文件或目录,但是文件在那里

时间:2019-06-30 03:38:21

标签: android file kotlin copy

我有一个命令行实用程序,可在应用程序的文件目录中生成一个文件。我可以看到文件在那里,但是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()

1 个答案:

答案 0 :(得分:0)

那太不可思议了...

我使用的命令行工具通过命令行变量接受文件名。我犯的错误是这样给参数:

filesDir.absolutePath + File.separator + "start.sh",
                    "arg",
                    "filenameparameter") 

代替此:

index.js

那行得通,但在文件开头创建了一个额外的空间!该文件在那里,但由于存在额外空间而无法找到。

很棒