【问题标题】:Packages and NSFileManager enumeratorAtURL:includingPropertiesForKeys:options:errorHandler:包和 NSFileManager enumeratorAtURL:包括PropertiesForKeys:options:errorHandler:
【发布时间】:2015-05-23 23:23:11
【问题描述】:

我正要将此作为问题发布,但我在表述问题时解决了它。假设您正在使用如下 sn-p 中的代码...

  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;
               }
         ];

你如何进入文件夹而不是包

【问题讨论】:

    标签: cocoa osx-mavericks nsfilemanager


    【解决方案1】:

    你需要像这样跟进它:

          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 传递给 includePropertiesForKeys 参数。

    【讨论】:

      猜你喜欢
      • 2013-08-04
      • 1970-01-01
      • 2013-03-05
      • 1970-01-01
      • 1970-01-01
      • 2014-07-24
      • 1970-01-01
      • 2017-06-01
      • 1970-01-01
      相关资源
      最近更新 更多