新浪微博客户端(62)-计算某个文件或文件夹的大小

NSString+Extension.m

/**
 * 计算当前路径字符串指定的文件/文件夹大小
 * 文件/文件夹大小,-1代表指定的文件或文件夹路径不存在,以字节为单位
 */
- (NSInteger)fileSize {

    NSFileManager *mgr = [NSFileManager defaultManager];
    BOOL dir = NO;
    BOOL exists = [mgr fileExistsAtPath:self isDirectory:&dir];
    if (!exists) {
        return -1;
    }

    if (dir) { // 目录
        NSInteger totalByteSize = 0;
        NSArray *subPaths = [mgr subpathsAtPath:self]; // 单个文件路径
        for (NSString *subPath in subPaths) {
            // 计算完整路径下的文件大小,并累加
            totalByteSize += [[mgr attributesOfItemAtPath:[self stringByAppendingPathComponent:subPath] error:nil][NSFileSize] integerValue];
        }
        return totalByteSize;
    } else { // 文件
        return [[mgr attributesOfItemAtPath:self error:nil][NSFileSize] integerValue] ;
    }

}

移除某个文件或文件夹:

// 清除缓存
- (void)clearCache {

    NSString *cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];

    NSFileManager *mgr = [NSFileManager defaultManager];
    [mgr removeItemAtPath:cachePath error:nil];

}

最终效果:

时间: 2024-10-11 12:58:17

新浪微博客户端(62)-计算某个文件或文件夹的大小的相关文章

新浪微博客户端(23)-计算Cell内控件的frame

DJStatusCellFrame.m #import "DJStatusCellFrame.h" #import "DJStatus.h" #import "DJUser.h" @implementation DJStatusCellFrame - (void)setStatus:(DJStatus *)status { _status = status; DJUser *user = status.user; /* 计算控件Frame */

使用函数计算打包下载 OSS 文件

简介:打包下载 OSS 上存储的多个文件是一个常见的需求,例如将 OSS 上的一个目录打包下载.这样可以节省网络传输的数据,达到减少费用和下载时间的效果.使用函数计算可以很方便地实现这个需求. 需求 打包下载 OSS 上存储的多个文件,例如将 OSS 上的一个目录打包下载.这样可以节省网络传输的数据,达到减少费用和下载时间的效果. 方案 使用函数计算先把多个文件压缩成一个 zip,存储到 OSS 上面,返回 zip 文件的地址,客户端下载此文件.一般的客户端都支持跟随 HTTP 302 跳转地址

(一一七)基本文件操作 -SDWebImage清除缓存 -文件夹的大小计算

在iOS的App沙盒中,Documents和Library/Preferences都会被备份到iCloud,因此只适合放置一些记录文件,例如plist.数据库文件.缓存一般放置到Library/Caches,tmp文件夹会被系统随机清除,不适宜防止数据. [图片缓存的清除] 在使用SDWebImage时,图片被大量的缓存,有时需要获取缓存的大小以及清除缓存. 要获取缓存大小,使用SDImageCache单例的getSize方法拿到byte为单位的缓存大小,注意计算时按1K=1000计算. 拿到M

Windows客户端C/C++编程规范“建议”——文件

7 文件 7.1 正确使用#include 等级:[推荐] 说明:#include <>和#include ""导致编译器在搜索文件时,搜索的路径顺序不同.所以需要正确使用#include,以避免包含错了头文件. 语法形式 操作 带引号的形式 预处理器按以下顺序搜索包含文件: 在包含 #include 语句的文件所在的同一目录中. 在当前打开的包含文件的目录中,采用与打开它们的顺序相反的顺序. 搜索从父包含文件的目录中开始进行,然后继续向上到任何祖父包含文件的目录. 跟随每

递归实现显示目标文件夹的所有文件和文件夹,并计算目标文件夹的大小

递归的一个典型应用就是遍历目标文件夹,把该文件夹下的所有文件和文件夹打印或显示出来,还可以递归计算目标文件夹的总大小. 1: class Program 2: { 3: static void Main(string[] args) 4: { 5: Console.WriteLine("输入目标文件夹"); 6: string path = Console.ReadLine(); 7: FindFoldersAndFiles(path); 8: Console.WriteLine(&q

Windows魔法堂:解决“由于启动计算机时出现页面文件配置问题.......”

一.前言 昨晚终于在VirtualBox中安装好Win7了,但在系统启动后弹出窗报“由于启动计算机时出现页面文件配置问题.......”,于是度娘一下.以下记录以供日后查阅. 二.原因 网上说的是在使用过程中C盘空间越来越少,使得虚拟内存不足,而且进程又消耗了大量的物理内存才导致这一警报.但我的系统是新装的,就分了一个80G的C盘而已,而且分配了2.8G内存,那为什么会这样的呢?原来是因为系统默认没有分配虚拟内存,因此我们要手动分配一下. 三.手动分配 1. 右键计算机,打开设备管理器 2. 点

黑马程序员---工具类---OC自定义函数---计算当前路径下所有文件的总行数

------iOS培训.Java培训.Android培训, iOS学习型技术博客,期待与您交流------ 计算当前路径下所有文件的总行数 /* 计算当前路径下所有文件的总行数 涉及到NSArray.NSString.NSFileManager */ // 计算当前全路径(文件\文件夹)下所有文件的行数 // 接收参数path:文件的全路径(文件.文件夹) NSUInteger codeLinesCount(NSString *path) { // 1.获得文件管理者    单例模式:整个程序的

C# TCP实现多个客户端与服务端 数据 与 文件的传输

C#菜鸟做这个东东竟然花了快三天的时间了,真是菜,菜,菜--- 下面是我用C#写的 一个简单的TCP通信,主要的功能有: (1) 多个客户端与服务器间的数据交流 (2)可以实现群发的功能 (3)客户端与服务端可以进行文件的传输 主要用到的知识: TCP里的 socket ... 多线程 Thread ... 下面的是界面: 下面分别是服务端和客户端的代码,如若借用,请标明出处~~~ 服务端代码: [csharp] view plaincopyprint? using System; using 

[工具类]文件或文件夹xx已存在,则重命名为xx(n)(2)

写在前面 最近一直在弄文件传输组件,其中一个功能就是,在接收端接收文件时,如果文件已经存在了,则对其进行文件名+索引的方式进行自动重命名,之前也写个类似的工具类,总感觉代码太冗余,每回头想想,总觉得心里有疙瘩,下班的时候在地铁上,又想了想,感觉是我把问题想复杂了,遂将今天的思路整理一下,写了一个辅助类,记录在此. 上篇文章 [工具类]文件或文件夹xx已存在,则重命名为xx(n) ReNameHelper代码 1 using System; 2 using System.Collections.G