从大小> 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

您需要将 APK 文件大小减少到 100MB 或使用 APK 扩展文件 [重复]

Python:如何获取 PyQt5 中选定文件的文件大小?

从文件大小范围内的 SQL 表中选择行

如何以 MB(兆字节)为单位获取文件的大小?

获取文件大小 > 然后获取总大小?