从大小> 100MB的选定文件夹中获取文件列表,其路径为目标c
Posted
技术标签:
【中文标题】从大小> 100MB的选定文件夹中获取文件列表,其路径为目标c【英文标题】:Get the list of files from selected folders having sizes >100MB with their paths objective c 【发布时间】:2015-07-09 05:15:15 【问题描述】:我想为我的 mac 系统获取所有文件的列表及其路径和大小。
因此,我只想过滤那些文件大小超过 100 MB 的文件。
我使用以下代码获得了系统的大小。
NSError *error;
NSFileManager *fileManager = [NSFileManager defaultManager];
NSDictionary *fileAttributes = [fileManager attributesOfFileSystemForPath:@"/" error:&error];
现在我想获取文件列表及其路径和大小。
我搜索了很多,但这些都不能满足我的要求。
请帮帮我。
提前谢谢...
【问题讨论】:
enumeratorAtURL:includingPropertiesForKeys:options:errorHandler:
也许?
@CRD:如何实现???
在enumeratorAtURL:includingPropertiesForKeys:options:errorHandler:
的文档中,有一个示例代码遍历树收集所有路径,同时忽略某些文件夹。您可以以此为基础走树并收集所有尺寸。如果您遇到困难,请提出另一个问题并包含您的代码,有人可能会提供帮助。
【参考方案1】:
我得到了以下方案的解决方案。
感谢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];
希望它也对其他人有所帮助。
【讨论】:
以上是关于从大小> 100MB的选定文件夹中获取文件列表,其路径为目标c的主要内容,如果未能解决你的问题,请参考以下文章
当我读取大小为 17 mb 的 100 万个 url 文件时,我的程序占用 163 mb