iOS遍历程序内某个文件夹下所有文件的属性
项目中有个文件管理系统,在做本地文件管理操作的时候,遇到了遍历本地文件的问题
遍历到的文件有些不需要显示,而且需要得到文件的相关属性,在此总结下。
//查找需要遍历文件夹的目录
NSString *kDocumentsPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
NSFileManager *fm = [NSFileManager defaultManager];
[fm createDirectoryAtPath: [kDocumentsPath stringByAppendingPathComponent:@"localFile"] withIntermediateDirectories:YES attributes:nil error:nil];
NSString *dir = [NSString stringWithFormat:@"%@/localFile",kDocumentsPath];
NSDirectoryEnumerator *dirEnumerater = [fm enumeratorAtPath:dir];
NSString *filePath = nil;
//开始遍历文件
while (nil != (filePath = [dirEnumerater nextObject])) {
NSString *msgdir = [NSString stringWithFormat:@"%@/localFile/%@",kDocumentsPath,filePath];
BOOL isDir;
//比对文件类型,删除不相关类型的文件
if ([fm fileExistsAtPath:msgdir isDirectory:&isDir]) {
if (!isDir) {
if ([[filePath lastPathComponent] isEqualToString:@".DS_Store"]) {
continue;
}
if ([[filePath lastPathComponent] isEqualToString:@"index.htm"]) {
continue;
}
if ([[filePath lastPathComponent] isEqualToString:@"index.html"]) {
continue;
} NSString *fileNameStr = [filePath lastPathComponent];
NSString *filePath = msgdir;
//文件修改时间
NSDictionary *attributes = [fm attributesOfItemAtPath:msgdir error:nil];
NSDate *theModifiDate;
if ((theModifiDate = [attributes objectForKey:NSFileModificationDate])) {
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy.MM.dd HH:mm"];
NSString *dateStr = [formatter stringFromDate:theModifiDate];
NSFileManager* manager = [NSFileManager defaultManager];
long long fileSize;
if ([manager fileExistsAtPath:filePath]){
fileSize = [[manager attributesOfItemAtPath:filePath error:nil] fileSize];
}
NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:fileNameStr,@"name",filePath,@"path",dateStr,@"time",@(fileSize),@"size", nil];
[localFileArr addObject:dic];
// NSLog(@"\n-----文件名%@\n_______文件路径%@\n======修改时间%@\n-=-=-=-大小 %lld",fileNameStr,filePath,dateStr,fileSize); }
}
}
}
iOS遍历程序内某个文件夹下所有文件的属性的更多相关文章
- C#遍历文件夹下所有文件
FolderForm.cs的代码如下: using System; using System.Collections.Generic; using System.Diagnostics; using ...
- opencv实现遍历文件夹下所有文件
前言 最近需要将视频数据集中的每个视频进行分割,分割成等长的视频片段,前提是需要首先遍历数据集文件夹中的所有视频. 实现 1.了解opencv中的Directory类: 2.实现测试代码: 系统环境 ...
- c bash 代码遍历文件夹下所有文件
用C代码.bash实现代码遍历文件夹下所有文件 递归方式实现如下: void listdir(char *path) { DIR *ptr_dir; struct dirent *dir_entry; ...
- python (9)统计文件夹下的所有文件夹数目、统计文件夹下所有文件数目、遍历文件夹下的文件
命令:os 用到的:os.walk os.listdir 写的爬虫爬的数据,但是又不知道进行到哪了,于是就写了个脚本来统计文件的个数 #统计 /home/dir/ 下的文件夹个数 import o ...
- PHP遍历文件夹下的文件和获取到input name的值
<?php$dir = dirname(__FILE__); //要遍历的目录名字 ->当前文件所在的文件夹//$dir='D:\PHP\wamp\www\admin\hosts\admi ...
- java中File类应用:遍历文件夹下所有文件
练习: 要求指定文件夹下的所有文件,包括子文件夹下的文件 代码: package 遍历文件夹所有文件; import java.io.File; public class Test { public ...
- SharePoint 2013创建应用程序时IIS端口文件夹下没文件
最近SharePoint 2007迁移到2013的时候,碰到创建应用程序时IIS端口文件夹下没文件的问题,网上找了大把的原因,终于在这里找到了解决方案: Fix: 1. Open IIS on the ...
- PHP使用glob方法遍历文件夹下所有文件
PHP使用glob方法遍历文件夹下所有文件 遍历文件夹下所有文件,一般可以使用opendir 与 readdir 方法来遍历.<pre><?php$path = dirname(__ ...
- 利用shell脚本或者php移动某个文件夹下的文件到各自的日期组成的目录下
背景是这样的:网站一开始访问量比较小,大家就把所有的图片文件上传到一个目录下(比如是/data/images/).后来访问量大了,图片也多了,这样就影响读取效率.所以有个这样的需求,把这些个图片文件移 ...
- FILE文件删除操作(删除指定文件夹下所有文件和文件夹包括子文件夹下所有文件和文件夹),就是删除所有
2018-11-05 19:42:08开始写 选择 删除 1.FileUtils.java类 import java.io.File;//导入包 import java.util.List;//导入 ...
随机推荐
- 8. String to Integer (atoi)
题目: Implement atoi to convert a string to an integer. Hint: Carefully consider all possible input ca ...
- 57. Jump Game && Jump Game II
Jump Game Given an array of non-negative integers, you are initially positioned at the first index o ...
- linux下查找某个文件位置的方法
一.通过文件名查找法: 举例说明,假设你忘记了httpd.conf这个文件在系统的哪个目录 下,甚至在系统的某个地方也不知道,则这是可以使用如下命令: find / -name httpd.conf ...
- 前端开发框架Bootstrap和KnockoutJS
江湖中那场异常惨烈的厮杀,如今都快被人遗忘了.当年,所有的武林同道为了同一个敌人都拼尽了全力,为数不多的幸存者心灰意冷,隐姓埋名,远赴他乡,他们将唯一的希望寄托给时间.少年子弟江湖老,红颜少女的鬓边也 ...
- LINUX下查看负载
1,查看磁盘 df -h 2,查看内存大小 free free [-m|g]按MB,GB显示内存 vmstat 3,查看cpu cat /proc/cpuinfo 只看cpu数量grep " ...
- java面试笔试
一.String,StringBuffer, StringBuilder 的区别是什么?String为什么是不可变的? String在Java中是final的类,所以不可变:StringBuffer是 ...
- Inside The C++ Object Model - 01
前言 1.Foundation项目是一个定义大系统开发模型的项目,又叫Grail. 2.Grail中编译器被分为:parser(语法分析)->type checking -> simpli ...
- 初学matlab----函数用法(随学习更新中)
sort(A) 若A是向量不管是列还是行向量,默认都是对A进行升序排列. sort(A)是默认的升序,而sort(A,'descend')是降序排序. sort(A)若A是矩阵,默认对A的各列进行升序 ...
- mysql 主从复制原理
主从形式 mysql主从复制 灵活 一主一从 主主复制 一主多从---扩展系统读取的性能,因为读是在从库读取的: 多主一从---5.7开始支持 联级复制--- 用途及条件 mysql主 ...
- Linux_08------Linux的系统管理
分钟,在随机延迟0-45分钟时间 * 使用nice命令指定默认优先级,使用run-parts脚本执行/etc/cron.daily目录中的所有可执行文件. * */