كيف يمكنني الحصول على NSArray من أسماء الملفات لجميع الملفات في دليل معين في تطبيقي؟

StackOverflow https://stackoverflow.com/questions/1272042

سؤال

يبدو ما أريد فعله بسيطا بما فيه الكفاية: احصل على مجموعة من أسماء الملفات في "دليل" معين في تطبيقي. ولكن كلما زاد اللعب مع NSFILEMANAGER و NSBUNDLE أجد نفسي أكثر ضائعة ... أريد فقط الحصول على أسماء الملفات للملفات المنظمة في دليل معين في مشروع iPhone XCode الخاص بي ... على سبيل المثال: الدليل المعني هو يسمى "الصور" (تم إنشاؤه باستخدام "إضافة> مجموعة جديدة" ضمن أيقونة المشروع في Xcode) ويحتوي على 10 صور. يبدو بسيطا ولكني لا أحصل على أي مكان. كنت أقدر بعض المساعدة في العثور على الجواب.

س: كيف يمكنني الحصول على NSArray من أسماء الملفات لجميع الملفات في دليل معين في تطبيقي؟

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

المحلول

إذا كنت ترغب في أن تكون المجلد جزءا من حزمة التطبيق، فأنت بحاجة إلى إنشاء مرجع مجلد داخل مجموعة الموارد، بدلا من مجموعة (سيظهر في Xcode كجلد أزرق بدلا من الأصفر).

للقيام بذلك، يمكنك سحب المجلد من Finder وحدد مرجع المجلد عند المطالبة.

بمجرد أن يكون لديك ذلك، يجب أن تكون قادرا على الحصول على محتويات المجلد بشيء مثل:

NSError *error = nil;

NSString *yourFolderPath = [[[NSBundle mainBundle] resourcePath]
                            stringByAppendingPathComponent:@"YourFolder"];

NSArray  *yourFolderContents = [[NSFileManager defaultManager] 
                                contentsOfDirectoryAtPath:yourFolderPath error:&error];

نصائح أخرى

تم إهمال الإجابة المقبولة لسنوات الآن. يجب استخدام ما يلي بدلا من ذلك.

- (NSArray *)contentsOfDirectoryAtPath:(NSString *)path error:(NSError **)error

تحديث: @ macserv تحديث الإجابة المقبولة بعد أن أرسلت هذا.

في الوقت الحاضر، هذه هي الطريقة التي تقوم بها:

  1. من الباحث، اسحب وإسقاط المجلد الخاص بك في المستكشف الخاص بالمشروع الخاص بك وسيتم عرض المنبثقة التالية:enter image description here
  2. كما ترون في تلك لقطة الشاشة، يجب عليك تحديد إنشاء مراجع مجلد.
  3. افعل ما يخبرك بهذا الحل لهذا المنصب. أعني:

    nserror * خطأ = nil؛

    nsstring * yourfolderpath = [[[nsbundle mainbundle] rustrathpath] stringbyAppeningpendphomponent: @ "أفلامك"]؛

    nsarray * yourfoldercontents = [[nsfilemanager defaultmanager] contentsofdirectoryatatrath: خطأ yourfolderpath: والخطأ]؛

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