سؤال

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 الخاص بك؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top