iOS遍歷程序內某個文件夾下所有文件的屬性


項目中有個文件管理系統,在做本地文件管理操作的時候,遇到了遍歷本地文件的問題

遍歷到的文件有些不需要顯示,而且需要得到文件的相關屬性,在此總結下。

 1     //查找需要遍歷文件夾的目錄
 2     NSString *kDocumentsPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
 3     NSFileManager *fm = [NSFileManager defaultManager];
 4    [fm createDirectoryAtPath: [kDocumentsPath stringByAppendingPathComponent:@"localFile"] withIntermediateDirectories:YES attributes:nil error:nil];
 5     NSString *dir = [NSString stringWithFormat:@"%@/localFile",kDocumentsPath];
 6     NSDirectoryEnumerator *dirEnumerater = [fm enumeratorAtPath:dir];
 7     NSString *filePath = nil;
 8     //開始遍歷文件
 9     while (nil != (filePath = [dirEnumerater nextObject])) {
10         NSString *msgdir = [NSString stringWithFormat:@"%@/localFile/%@",kDocumentsPath,filePath];
11         BOOL isDir;
12         //比對文件類型,刪除不相關類型的文件
13         if ([fm fileExistsAtPath:msgdir isDirectory:&isDir]) {
14             if (!isDir) {
15                 if ([[filePath lastPathComponent] isEqualToString:@".DS_Store"]) {
16                     continue;
17                 }
18                 if ([[filePath lastPathComponent] isEqualToString:@"index.htm"]) {
19                     continue;
20                 }
21                 if ([[filePath lastPathComponent] isEqualToString:@"index.html"]) {
22                     continue;
23                 }
24                 
25                 NSString *fileNameStr = [filePath lastPathComponent];
26                 NSString *filePath = msgdir;
27                 //文件修改時間
28                 NSDictionary *attributes = [fm attributesOfItemAtPath:msgdir error:nil];
29                 NSDate *theModifiDate;
30                 if ((theModifiDate = [attributes objectForKey:NSFileModificationDate])) {
31                     NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
32                     [formatter setDateFormat:@"yyyy.MM.dd  HH:mm"];
33                     NSString *dateStr = [formatter stringFromDate:theModifiDate];
34                     NSFileManager* manager = [NSFileManager defaultManager];
35                     long long fileSize;
36                     if ([manager fileExistsAtPath:filePath]){
37                         fileSize = [[manager attributesOfItemAtPath:filePath error:nil] fileSize];
38                     }
39                     NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:fileNameStr,@"name",filePath,@"path",dateStr,@"time",@(fileSize),@"size", nil];
40                     [localFileArr addObject:dic];
41 //                     NSLog(@"\n-----文件名%@\n_______文件路徑%@\n======修改時間%@\n-=-=-=-大小  %lld",fileNameStr,filePath,dateStr,fileSize);
42                     
43                 }
44             }
45         }
46     }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM