diff --git a/Haneke/HNKDiskCache.m b/Haneke/HNKDiskCache.m index c775aad..9d40a60 100644 --- a/Haneke/HNKDiskCache.m +++ b/Haneke/HNKDiskCache.m @@ -119,28 +119,22 @@ - (void)removeDataForKey:(NSString*)key - (void)removeAllData { dispatch_async(_queue, ^{ + NSFileManager *fileManager = [NSFileManager defaultManager]; NSError *error; - if ([[NSFileManager defaultManager] removeItemAtPath:_directory error:&error]) - { - _size = 0; - - if (![[NSFileManager defaultManager] createDirectoryAtPath:_directory withIntermediateDirectories:YES attributes:nil error:&error]) - { - NSLog(@"Failed to recreate directory with error %@", error); - } + NSArray *contents = [fileManager contentsOfDirectoryAtPath:_directory error:&error]; + if (!contents) { + NSLog(@"Failed to list directory with error %@", error); + return; } - else + for (NSString *pathComponent in contents) { - BOOL isDirectory = NO; - if (![[NSFileManager defaultManager] fileExistsAtPath:_directory isDirectory:&isDirectory]) - { - _size = 0; - } - else + NSString *path = [_directory stringByAppendingPathComponent:pathComponent]; + if (![fileManager removeItemAtPath:path error:&error]) { - NSLog(@"Failed to remove directory with error %@", error); + NSLog(@"Failed to remove file with error %@", error); } } + [self calculateSize]; }); }