2015-05-23 29 views
2

我正要發佈這個問題,但我解決了它,因爲我是措辭的問題。假設你要使用如下面的代碼片段...包和NSFileManager的enumeratorAtURL:includesPropertiesForKeys:選項:errorHandler:

NSFileManager *fm = [NSFileManager defaultManager]; 
    NSDirectoryEnumerator *enm; 

    enm = [fm enumeratorAtURL:path 
      includingPropertiesForKeys:[NSArray arrayWithObjects:NSURLNameKey, NSURLIsDirectoryKey, NSURLIsPackageKey, nil] 
      options:(NSDirectoryEnumerationSkipsSubdirectoryDescendants|NSDirectoryEnumerationSkipsPackageDescendants|NSDirectoryEnumerationSkipsHiddenFiles) 
      errorHandler:^BOOL(NSURL *url, NSError *error){ 
       // TODO: Error needed here? 
       return YES; 
       } 
     ]; 

你怎麼淪落成文件夾但不包

回答

2

你需要像這樣的東西來跟進:

 for (NSURL *url in enm){ 
     NSNumber *number; 
     NSString *name; 

     // Retrieve the directory property 
     [url getResourceValue:&number forKey:NSURLIsDirectoryKey error:nil]; 

     // Retrieve the name 
     [url getResourceValue:&name forKey:NSURLNameKey error:nil]; 

     if ([number boolValue] == NO){ 
      // It's a file! 
     } else { 
     // It's a folder! 

     // Retrieve the package property. 
     [url getResourceValue:&number forKey:NSURLIsPackageKey error:nil]; 

      if (![number boolValue]){ 
      // But not a package! 
      } 
     } 
     } 

對於上面的代碼工作,你必須確保你通過NSURLNameKey,NSURLIsDirectoryKey和NSURLIsPackageKey到includingPropertiesForKeys參數。