I am trying to grab the top level directories only
NSDirectoryEnumerator *directoryEnumerator = [fileManager enumeratorAtURL:[NSURL URLWithString:directory]
includingPropertiesForKeys:[NSArray arrayWithObjects:NSURLIsDirectoryKey, nil]
options: NSDirectoryEnumerationSkipsHiddenFiles | NSDirectoryEnumerationSkipsSubdirectoryDescendants
errorHandler:nil];
for (NSURL *file in directoryEnumerator) {
NSDictionary *attributes = [directoryEnumerator fileAttributes];
if ([attributes objectForKey:NSFileType] == NSFileTypeDirectory) {
NSLog(@"Yes its a directory");
}
}
But every time I get nil for fileAttributes. Shouldn't I be able to get fileAttributes when using an nsdirectoryenumerator?
You don't want to call fileAttributes on the enumerator. Instead, you want to get the desired property from the URL.
NSDirectoryEnumerator *directoryEnumerator = [fileManager enumeratorAtURL:[NSURL URLWithString:directory]
includingPropertiesForKeys:@[NSURLIsDirectoryKey]
options: NSDirectoryEnumerationSkipsHiddenFiles | NSDirectoryEnumerationSkipsSubdirectoryDescendants
errorHandler:nil];
for (NSURL *file in directoryEnumerator) {
NSNumber *isDirectory;
[url getResourceValue:&isDirectory forKey:NSURLIsDirectoryKey error:NULL];
if ([isDirectory boolValue]) {
NSLog(@"Yes its a directory");
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With