أصول Android مع المجلدات الفرعية
سؤال
InputStream myInput = myContext.getAssets().open("MyFolder/" + "MyFile.db3");
لدي ملف في مجلد الأصول في مجلد فرعي على النحو الوارد أعلاه. لا يحصل على الملف ، هل هناك طريقة خاصة لتحديد مجلد فرعي في مجلد الأصول؟
إيان
المحلول
تحرير: كان مخطئا حول المجلدات الفرعية.
يعمل هذا الرمز بشكل جيد على 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();
هل أنت متأكد من أنك حصلت على الأسماء بشكل صحيح؟
نصائح أخرى
"MyFolder/" + "MyFile.db3"
يجب أن يكون اسم الملف للملفات المضافة إلى مجلد الأصول في حرف صغير. لذلك ، اسم ملف مثل MyFolder و MyFile.db3 غير صالح. أعد تسميتهم إلى "myfolder" و "myfile.db3" ، ثم سيكون كل شيء على ما يرام.
هل ملف الأصول الخاص بك أكثر من 1 ميغابايت؟
لقد لاحظت أنني أحصل على نفس ioexception الفارغة الفارغة إذا حاولت فتح أصل أكثر من هذا الحجم. حقيقة أنه في مجلد فرعي يمكن أن يكون رنجة حمراء. أحاول فتح ملف نصي كبير حتى أتمكن من حل هذا الحد عن طريق تقسيمه. هل يمكنك فعل شيء مشابه مع ملف .db3 الخاص بك؟