cocoa - Why is NSDirectoryEnumerator picking up hidden files here? -


i need avoid hidden files in enumeration, .ds_store files still being added.

i put in nslog check, , getting output there.

there's obvious, can't see it.

nsdirectoryenumerator *direnumerator;                 nsfilemanager *filemanager = [[nsfilemanager alloc] init];                  direnumerator = [filemanager enumeratoraturl:item                                    includingpropertiesforkeys:[nsarray array]                                                      options:nsdirectoryenumerationskipspackagedescendants || nsdirectoryenumerationskipshiddenfiles                                                  errorhandler:nil];                  (nsurl *urlitem in direnumerator) {                       // item hidden ?                     nsnumber *ishidden = nil;                     if ([urlitem getresourcevalue:&ishidden forkey:nsurlishiddenkey error:nil]) {                         if ([ishidden isequal:[nsnumber numberwithint:1]]) {                              nslog(@"ishidden 1");                             continue;                         }                     } 

actually, real problem you're using wrong operator specify mask:

nsdirectoryenumerationskipspackagedescendants ||  nsdirectoryenumerationskipshiddenfiles 

does boolean or, giving 1, isn't useful options mask. need use single pipe:

nsdirectoryenumerationskipspackagedescendants |  nsdirectoryenumerationskipshiddenfiles 

which bitwise or.

old answer:

you need request properties you're going at:

direnumerator = [filemanager enumeratoraturl:item                    includingpropertiesforkeys:[nsarray arraywithobject:nsurlishiddenkey]                                      options:nsdirectoryenumerationskipspackagedescendants || nsdirectoryenumerationskipshiddenfiles                                  errorhandler:nil]; 

from -[nsurl getresourcevalue:forkey:error:] doc:

discussion
value set nil if requested resource value not defined url. in case, method still returns yes.


Comments