0

如何遍历文件夹(带有可能包含更多子目录的子目录)并删除文件(如果它不是目录)?本质上,我在问如何清除所有目录。我enumeratorAtPath:在这方面的方法有点麻烦,因为我不确定如何询问枚举器当前文件是否是目录。确实需要fileAttributes查字典。注意:这对我来说可能是非常错误的,但我用路径的 NSString 初始化枚举器。这有什么改变吗?

4

1 回答 1

7

像这样的东西会起作用:

NSURL *rootURL = ... // File URL of the root directory you need
NSFileManager *fm = [NSFileManager defaultManager];
NSDirectoryEnumerator *dirEnumerator = [fm enumeratorAtURL:rootURL
                    includingPropertiesForKeys:@[NSURLNameKey, NSURLIsDirectoryKey]
                    options:NSDirectoryEnumerationSkipsHiddenFiles
                    errorHandler:nil];

for (NSURL *url in dirEnumerator) {
    NSNumber *isDirectory;
    [url getResourceValue:&isDirectory forKey:NSURLIsDirectoryKey error:NULL];
    if (![isDirectory boolValue]) {
        // This is a file - remove it
        [fm removeItemAtURL:url error:NULL];
    }
}
于 2013-07-14T03:25:22.613 回答