我正在尝试使用NSFileManager
来确定某个项目是文件还是子目录。
这就是我所拥有的:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [paths objectAtIndex:0];
NSError *error = nil;
NSArray *files = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:[documentsDir stringByAppendingPathComponent:@"exported"] error:&error];
for (NSString *filename in files) {
NSString *path = [documentsDir stringByAppendingPathComponent:filename];
BOOL isDir;
if([[NSFileManager defaultManager] fileExistsAtPath:documentsDir isDirectory:&isDir] && isDir){
NSLog(@"%@ is a directory", path);
}
else {
NSLog (@"%@ is a file", path);
}
}
我得到文件和子目录的“目录”。我搜索了类似的SO问题,我发现我在那里找到的代码与我试图使用的代码没有区别。
答案 0 :(得分:4)
您似乎使用错误的路径来测试文件和目录
在fileExistsAtPath
中:您正在测试documentsDir
而不是path
纠正这个
if([[NSFileManager defaultManager] fileExistsAtPath:documentsDir isDirectory:&isDir] && isDir)
要
if([[NSFileManager defaultManager] fileExistsAtPath: path isDirectory:&isDir] && isDir)