سؤال

سؤال: كيف تميز برمجيًا بين الدلائل والملفات العادية في مجلد الأصول؟

عند استخدام AssetManager للوصول إلى الملفات في مجلد الأصول ، يبدو من المستحيل تحديد ما إذا كان الملف في الواقع ملفًا أو دليلًا. تحصل على قائمة الملفات من list الطريقة ثم افتح الملف باستخدام open طريقة. فكرت ربما باستخدام openFd ستوفر لي طريقة الحصول على واصف ملف الأصول (ثم طلب واصف الملف العادي) بعض المعلومات. لكن طلب واصف الملف للحصول على دليل يؤدي إلى iOexception (وهو أمر منطقي لأن ماذا يعني أن يكون للدليل واصف ملف ...؟).

حاليًا أعتمد على هذا IOException (الناتج عن محاولة فتح دليل في مجلد الأصول) من أجل تحديد ما إذا كان الملف في الواقع دليلًا. (فتح ملف منتظم يعمل بشكل جيد). هذا يبدو وكأنه فكرة سيئة. أي اقتراحات أخرى للتمييز بين ملف ودليل؟

هل كانت مفيدة؟

المحلول

وأنا أتفق مع التعليقات على رسالتك. ولكن للإجابة على سؤالك ، قم بعمل كائن ملف مدبب في دليل الأصولFile root = new File("path/to/directory");

ثم يمكنك استخراج جميع ملفاتها الفرعية وأدلة مثل هذاFile[] files = root.listFiles();

بمجرد حصولك على القائمة ، يمكنك تحديد ما هو استخدام file.isdirectory ().

أما بالنسبة لتحديد أنواع الملفات ، فهذا أمر بسيط مثل استخدام string.substring () للاستيلاء على الحرف بعد الفترة الأخيرة.

أتمنى أن يساعدك هذا

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