我想获取所有文件的列表及其路径&我的mac系统的大小。
由此,我想只过滤那些文件大小超过100 MB的文件。
我使用以下代码获得了系统的大小。
NSError *error;
NSFileManager *fileManager = [NSFileManager defaultManager];
NSDictionary *fileAttributes = [fileManager attributesOfFileSystemForPath:@"/" error:&error];
现在我想获取带有路径和大小的文件列表。
我搜索了很多,但那些不符合我的要求。
请帮助我。
提前致谢...
答案 0 :(得分:0)
我通过以下方案获得了解决方案。
感谢CRD给我这个想法。
首先,我采用了文件夹的路径。然后为了获取子文件夹,我使用了NSDirectoryEnumerator
,然后我使用代码来查找文件的大小。
一旦我得到了文件的大小,我就检查了文件大小并添加到我的数组中。
所以它奏效了。
NSString *Path = [NSString stringWithFormat:@"/Users/%@/",NSUserName()];
NSDirectoryEnumerator *de = [[NSFileManager defaultManager] enumeratorAtPath:Path];
NSString *file;
NSMutableArray *arrList = [[NSMutableArray alloc]init];
while ((file = [de nextObject]))
NSLog(@"file %@",file);
Path = [NSString stringWithFormat:@"/Users/%@/",NSUserName()];
Path = [Path stringByAppendingString:file];
NSLog(@"path %@",Path);
NSError *attributesError = nil;
NSDictionary *fileAttributes = [[NSFileManager defaultManager] attributesOfItemAtPath:Path error:&attributesError];
NSNumber *fileSizeNumber = [fileAttributes objectForKey:NSFileSize];
long long fileSize = [fileSizeNumber longLongValue];
NSLog(@"%lld",fileSize);
float sizeKB = ((float)fileSize / 1000);
NSLog(@"%f",sizeKB);
float sizeMB = ((float)fileSize / 1000000);
NSLog(@"%f",sizeMB);
if (sizeMB >= 100.0)
{
[arrList addObject:file];
[test addObject:file.lastPathComponent];
}
希望它也可以帮助别人。