Android-активы с подпапками - PullRequest
24 голосов
/ 14 июня 2010
InputStream myInput = myContext.getAssets().open("MyFolder/" + "MyFile.db3");

У меня есть файл в папке активов в подпапке, как указано выше.Он не получает файл, есть ли специальный способ указать подпапку в папке ресурсов?

Ian

Ответы [ 3 ]

40 голосов
/ 14 июня 2010

Редактировать: неправильно для подпапок.
Этот код прекрасно работает на 1.5 (для файла sample.txt, помещенного в папку sub в assets):

InputStream is = getAssets().open("sub/sample.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line = null;
while ((line = br.readLine()) != null) {
    Log.e("wtf", line);
}
br.close();

Выуверен, что вы правильно поняли имена?

7 голосов
/ 21 февраля 2012
"MyFolder/" + "MyFile.db3"

Имя файла для файлов, добавляемых в папку ресурсов, должно быть написано строчными буквами.поэтому имя файла, такое как MyFolder и Myfile.db3, недопустимо.Переименуйте их в «myfolder» и «myfile.db3», тогда все будет хорошо.

5 голосов
/ 08 августа 2011

Ваш файл актива больше 1 МБ?

Я заметил, что получаю такое же странное, пустое исключение IOException, если пытаюсь открыть ресурс, размер которого превышает этот размер.Факт, что это находится в подпапке, мог быть красной сельдью.Я пытаюсь открыть большой текстовый файл, чтобы обойти это ограничение, разделив его.Можете ли вы сделать что-то подобное с вашим файлом .db3?

...