Why is NSDirectoryEnumerator picking up hidden files here?

后端 未结 1 1811
盖世英雄少女心
盖世英雄少女心 2020-12-12 00:10

i need to avoid hidden files in this enumeration, but .DS_Store files are still being added.

i put in the NSLog to check, and i am getting output there.

ther

相关标签:
1条回答
  • 2020-12-12 00:30

    Actually, the real problem is that you're using the wrong operator to specify the mask:

    NSDirectoryEnumerationSkipsPackageDescendants ||  NSDirectoryEnumerationSkipsHiddenFiles
    

    does Boolean OR, giving you 1, which isn't a useful options mask. You need to use the single pipe:

    NSDirectoryEnumerationSkipsPackageDescendants |  NSDirectoryEnumerationSkipsHiddenFiles
    

    which is bitwise OR.

    OLD ANSWER:

    You need to actually request the properties that you're going to look at:

    dirEnumerator = [fileManager enumeratorAtURL:item 
                      includingPropertiesForKeys:[NSArray arrayWithObject:NSURLIsHiddenKey]
                                         options:NSDirectoryEnumerationSkipsPackageDescendants || NSDirectoryEnumerationSkipsHiddenFiles 
                                    errorHandler:nil];
    

    from the -[NSURL getResourceValue:forKey:error:] doc:

    Discussion
    value is set to nil if the requested resource value is not defined for the URL. In this case, the method still returns YES.

    0 讨论(0)
提交回复
热议问题