計算沙盒中文件文件夾的大小

計算沙盒中文件文件夾的大小

需求爲統計應用所用緩存的大小,因爲緩存文件都存儲在沙盒裏,所用要計算緩存的大小就要計算沙盒裏我們存放的文件及文件夾的大小;
NSFileManager 類裏提供了一個方法:
- (NSDictionary *)attributesOfItemAtPath:(NSString *)path error:(NSError **)error
取dictionary的filesize可以拿到沙盒裏某個路徑文件的大小;
若要獲取一個文件夾的大小,需要遍歷文件夾的所有文件,獲取每個文件的大小,累積起來;在NSFileManager裏有個方法可以獲取文件夾裏的所有子文件相對路徑:
- (NSArray *)subpathsAtPath:(NSString *)path;
如此便可以獲取任意一個文件夾的大小;

//計算DesPath文件夾的緩存

 NSArray* subFiles = [fm subpathsAtPath:DesPath];
        NSLog(@"subpath = %@",subFiles);
        for (NSString* fileName in subFiles) {
            if ([fileName hasSuffix:@"png"]||[fileName hasSuffix:@"jpg"]) {  //此處爲獲取圖片文件的大小
                NSDictionary* dic = [fm attributesOfItemAtPath:BOOKPATH([LoginPlugin share].userID,fileName) error:&error];
                NSUInteger size = (error ? 0:[dic fileSize]);
                fileSize += size;
            }
        }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章