例如,如果我这样做:
NSDirectoryEnumerator *directoryEnumerator = [[NSFileManager defaultManager] enumeratorAtURL:cacheDirectory
includingPropertiesForKeys:@[NSURLContentAccessDateKey]
options:NSDirectoryEnumerationSkipsHiddenFiles
errorHandler:nil];
NSURL *fileURL;
while (fileURL = [directoryEnumerator nextObject])
{
NSDate *fileDate;
[fileURL getResourceValue:&fileDate forKey:NSURLContentAccessDateKey error:nil];
if ([cacheDate compare:fileDate] == NSOrderedDescending) // Delete all files with access date older then cacheDate(defined elsewhere)
[[NSFileManager defaultManager] removeItemAtURL:fileURL error:nil];
}
目录枚举器是否会“损坏”,例如我会因为每个文件的索引更改而得到意外结果吗?
但是,我想使用该enumeratorAtURL
方法,而不是contentsOfDirectoryAtURL
因为我必须处理大量文件(超过 100,000 个)。所以contentsOfDirectoryAtURL
会占用大量内存。