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
Post a Comment