@This_man
Во-первых,
[panel URLs]
возвращает массив NSURL-ов, и для использования их в contentsOfDirectoryAtPath: нужно преобразовать в NSString c помощью absoluteString или path, как у Вас.
Во-вторых, код вида
NSError *error = nil;
NSArray *arr = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:@"//" error:&error];
NSLog(@"%@", arr);
вполне корректно отрабатывает, демонстрируя содержание корневой папки, не требуя никаких дополнительных пермишенов. Проверяйте значения своих переменных.
Кстати, отличный сниппет для резолва путей:
- (NSString *)resolvePath:(NSString *)path {
NSString *expandedPath = [[path stringByExpandingTildeInPath] stringByStandardizingPath];
const char *cpath = [expandedPath cStringUsingEncoding:NSUTF8StringEncoding];
char *resolved = NULL;
char *returnValue = realpath(cpath, resolved);
if (returnValue == NULL && resolved != NULL) {
printf("Error with path: %s\n", resolved);
// if there is an error then resolved is set with the path which caused the issue
// returning nil will prevent further action on this path
return nil;
}
return [NSString stringWithCString:returnValue encoding:NSUTF8StringEncoding];
}