iOS真机中, librarys,caches等文件夹没权限删除,只能删除自己创建的文件夹,
存储时,创建自己的文件夹,
//清空caches下所有文件
NSFileManager *manager = [NSFileManager defaultManager];
NSString *path = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject];
NSEnumerator *filesEnumerator = [[manager subpathsAtPath:path] objectEnumerator];//枚举 caches下所有文件路径
NSString *filePath;//文件名
while ((filePath = [filesEnumerator nextObject]) != nil) {
NSString *string = [path stringByAppendingPathComponent:filePath];
[manager removeItemAtPath:string error:nil];
}
计算文件大小
//m/(1024.0*1024.0)返回的是1024.0*1024.0)
- (float)folderSizeAtPath:(NSString *)path {
NSFileManager *manager = [NSFileManager defaultManager];
if (![manager fileExistsAtPath:path]) return 0;//文件夹不存在返回0
NSEnumerator *childFilesEnumerator = [[manager subpathsAtPath:path] objectEnumerator];//枚举器
NSString *fileName;
long long folderSize = 0;
while ((fileName = [childFilesEnumerator nextObject]) != nil){
NSString* fileAbsolutePath = [path stringByAppendingPathComponent:fileName];
folderSize += [self fileSizeAtPath:fileAbsolutePath];
}
return folderSize;
}
- (long long) fileSizeAtPath:(NSString*) filePath{
NSFileManager *manager = [NSFileManager defaultManager];
if ([manager fileExistsAtPath:filePath]){
return [[manager attributesOfItemAtPath:filePath error:nil] fileSize];
}
return 0;
}
- (NSString *)libarySizeChange:(float)size {
if (size < 1024*1024) {
return [NSString stringWithFormat:@"%dk", (int)size/1024];
} else {
return [NSString stringWithFormat:@"%.2fM", size/(1024*1024)];
}
}