Android openFileInput говорит, что нет такого файла или каталога, но файл там - PullRequest
0 голосов
/ 30 июня 2019

У меня есть утилита командной строки, которая создает файл в каталоге файлов приложения.Я вижу, что файл существует, но 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 голосов
/ 30 июня 2019

Ну, это было невероятно ...

Инструмент командной строки, который я использую, принимает имена файлов через переменные командной строки. Ошибка, которую я сделал, состояла в том, чтобы дать такие аргументы:

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

вместо этого:

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

Это сработало, но создало дополнительный пробел в начале файла! Файл был там, но его не удалось найти из-за этого дополнительного места.

Удивительная

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...