lul*_*ulu 3 macos cocoa nsfilemanager
我需要避免此枚举中的隐藏文件,但仍会添加.DS_Store文件.
我把NSLog放进去检查,我在那里输出.
可能有一些明显的东西,但我看不到它.
NSDirectoryEnumerator *dirEnumerator;
NSFileManager *fileManager = [[NSFileManager alloc] init];
dirEnumerator = [fileManager enumeratorAtURL:item
includingPropertiesForKeys:[NSArray array]
options:NSDirectoryEnumerationSkipsPackageDescendants || NSDirectoryEnumerationSkipsHiddenFiles
errorHandler:nil];
for (NSURL *urlItem in dirEnumerator) {
// is item hidden ?
NSNumber *isHidden = nil;
if ([urlItem getResourceValue:&isHidden forKey:NSURLIsHiddenKey error:nil]) {
if ([isHidden isEqual:[NSNumber numberWithInt:1]]) {
NSLog(@"isHidden is 1");
continue;
}
}
Run Code Online (Sandbox Code Playgroud)
Jos*_*ell 11
实际上,真正的问题是你使用错误的运算符来指定掩码:
NSDirectoryEnumerationSkipsPackageDescendants || NSDirectoryEnumerationSkipsHiddenFiles
Run Code Online (Sandbox Code Playgroud)
做布尔OR,给你1,这不是一个有用的选项掩码.您需要使用单个管道:
NSDirectoryEnumerationSkipsPackageDescendants | NSDirectoryEnumerationSkipsHiddenFiles
Run Code Online (Sandbox Code Playgroud)
这是按位的OR.
老答案:
您需要实际请求您要查看的属性:
dirEnumerator = [fileManager enumeratorAtURL:item
includingPropertiesForKeys:[NSArray arrayWithObject:NSURLIsHiddenKey]
options:NSDirectoryEnumerationSkipsPackageDescendants || NSDirectoryEnumerationSkipsHiddenFiles
errorHandler:nil];
Run Code Online (Sandbox Code Playgroud)
来自-[NSURL getResourceValue:forKey:error:]文档:
如果未为URL定义请求的资源值,则将讨论值设置为nil.在这种情况下,该方法仍然返回YES.
| 归档时间: |
|
| 查看次数: |
3153 次 |
| 最近记录: |