احصل على مجموعة من الدلائل في دليل الوثائق
-
24-09-2019 - |
سؤال
أحاول إعادة قائمة الدلائل الموجودة في دليل مستندات التطبيق. أنا قادر على الحصول على صفيف يحتوي على جميع ملفات ملحق معين (على سبيل المثال ملفات .TXT أو ملفات .png) وأتمكن من إرجاع جميع المحتويات (بما في ذلك الدلائل). تنشأ المشكلة عندما أرغب في إعادة الدلائل فقط. هل هناك طريقة بسيطة لفعل هذا؟
فيما يلي رمز لإرجاع جميع ملفات .txt:
- (ViewController *) init {
if (self = [super init]) self.title = @"Text Files";
// get the list of .txt files
directoryList = [[[[NSFileManager defaultManager] directoryContentsAtPath:DOCUMENTS_FOLDER]
pathsMatchingExtensions:[NSArray arrayWithObjects:@".txt", nil]] retain];
NSLog(@"%@", directoryList);
return self;
}
ولجميع الملفات
- (ViewController *) init {
if (self = [super init]) self.title = @"Text Files";
// get the list of all files and directories
directoryList = [[[NSFileManager defaultManager] directoryContentsAtPath:DOCUMENTS_FOLDER] retain];
NSLog(@"%@", directoryList);
return self;
}
المحلول
جرب هذا:
- (ViewController *) init {
if (self = [super init]) self.title = @"Text Files";
// get the list of all files and directories
NSFileManager *fM = [NSFileManager defaultManager];
fileList = [[fM directoryContentsAtPath:DOCUMENTS_FOLDER] retain];
NSMutableArray *directoryList = [[NSMutableArray alloc] init];
for(NSString *file in fileList) {
NSString *path = [DOCUMENTS_FOLDER stringByAppendingPathComponent:file];
BOOL isDir = NO;
[fM fileExistsAtPath:path isDirectory:(&isDir)];
if(isDir) {
[directoryList addObject:file];
}
}
NSLog(@"%@", directoryList);
return self;
}
نصائح أخرى
كتب Mrueg كل شيء باستثناء شيء واحد
fileList = [[fM directoryContentsAtPath:DOCUMENTS_FOLDER];
استبدل ب
fileList = [fileManager contentsOfDirectoryAtPath:filePath error:nil];
لا تنتمي إلى StackOverflow