iOS 常用文件操作方法

NSString+FileMananger.m

@implementation NSString (FileManager)

+ (NSString *)logsDirectory {
    NSString *library = [NSHomeDirectory() stringByAppendingPathComponent:@"Library"];
    NSString *filePath = [NSString stringWithFormat:@"Caches/Logs"];
    NSString *folder = [library stringByAppendingPathComponent:filePath];
    return folder;
}

- (NSString *)calcSize:(NSUInteger)size {
    NSString *sizeStr = nil;
    // 拿到图片缓存, 将字节转为兆
    float cacheSize = size / 1024;
    sizeStr = [NSString stringWithFormat:@"%d KB", (int)cacheSize];
    if (((int)cacheSize / 1024)) {
        cacheSize /= 1024;
        sizeStr = [NSString stringWithFormat:@"%.1f M", cacheSize];
    } else if (!cacheSize) {
        sizeStr = @"没有缓存";
    }
    return sizeStr;
}

- (NSUInteger)sizeOfFile
{
    // 创建一个文件管理者
    NSFileManager *mgr = [NSFileManager defaultManager];
    
    NSUInteger fileSize = 0;
    BOOL isDir = NO;
    if (![mgr fileExistsAtPath:self isDirectory:&isDir]) return 0; //如果文件不存在直接退出

    if (isDir) { // 如果是文件夹
        // 取出所有子文件
        NSArray *subpaths = [mgr subpathsAtPath:self];
        // 遍历所有子文件
        for (NSString *subpath in subpaths) {
            // 拼接拿到文件的全路径
            NSString *fullSubPath = [self stringByAppendingPathComponent:subpath];
            // 判断是否是文件夹
            BOOL isDirectory = NO;
            if ([mgr fileExistsAtPath:fullSubPath isDirectory:&isDirectory]) { // 这个文件夹/文件存在
            if (isDirectory == NO) {  // 是文件
                fileSize += [[mgr attributesOfItemAtPath:fullSubPath error:nil][NSFileSize] integerValue];
                }
            }
        }
    } else { // 如果是文件
        fileSize = [[mgr attributesOfItemAtPath:self error:nil][NSFileSize] integerValue];
    }
    return fileSize;
}

@end

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值