احصل على مجموعة من الدلائل في دليل الوثائق

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

  •  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];
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top