Активы Android с подпапками

InputStream myInput = myContext.getAssets().open("MyFolder/" + "MyFile.db3");

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

Ян


person Ian Vink    schedule 13.06.2010    source источник
comment
Это выглядит правильно - выбрасываются ли какие-либо исключения, такие как IOException?   -  person Roman Nurik    schedule 14.06.2010
comment
Да, но странно, что исключение пустое, без причины   -  person Ian Vink    schedule 14.06.2010
comment
Если бы вы могли вставить трассировку стека в исходный вопрос, это было бы очень полезно.   -  person Roman Nurik    schedule 14.06.2010
comment
Возможно ли, что вы загружаете входной поток, используя неправильную локаль?   -  person Robert Massaioli    schedule 04.05.2011


Ответы (4)


Редактировать: был неправ насчет подпапок.
Этот код отлично работает на 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();

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

person yanchenko    schedule 13.06.2010

"MyFolder/" + "MyFile.db3"

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

person Spark    schedule 21.02.2012

Ваш файл активов превышает 1 МБ?

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

person CalloRico    schedule 08.08.2011
comment
омфг втф!!! это глупая ошибка, и они должны это исправить. Большое спасибо за то, что написали этот ответ, это, безусловно, тот же случай для меня, когда у меня был файл .ogg в папке music/blah.ogg, который не работал, потому что он был намного больше 1 МБ, но другой файл music/foo.ogg работает и весит всего 26кб... - person David T.; 08.09.2012

У меня была похожая проблема: я изменил имя подпапки с «mp3» на «mpthree», и файлы были найдены.

person Holger.Buick    schedule 04.05.2020