OC-文件系统操作

本文介绍了iOS应用的文件系统,特别是沙盒机制,强调了每个应用都有独立的沙盒,不能访问其他应用的数据。内容涵盖如何在Documents和Tmp目录下管理文件,如下载视频和图片,以及在OC中进行文件大小计算和删除文件的操作。
摘要由CSDN通过智能技术生成

ios的文件系统(沙盒机制)
当第一次启动app 时,ios操作系统就为此app 创建一个文件系统,该文件系统下,默认有四个目录,分别是:

Documents:存储用户在操作app 时产生的数据,在此目录下的数据可以通过iCloud进行同步
Library:用户偏好设置,通常和 NSUserDefaults 搭配使用,在此目录下的数据可以通过iCloud进行同步
tmp:存放临时数据,在此目录下的数据不会通过iCloud进行同步
app包:开发则不会操作此目录,通常是通过 NSBundle 来获取包内资料,如工程的素材

沙盒机制:
1.每个应用程序都在自己的沙盒内
2.不能随意跨越自己的沙盒去访问别的应用程序沙盒的内容
3.应用程序向外请求或接收数据都需要经过权限认证


对文件系统的一些相关操作:

//获取程序根目录
NSString *rootPath = NSHomeDirectory();
//获取根目录下 Documents 的目录
//在根目录后面拼接 Documents,以此来获得 Documents 的目录
NSString *documentsPath = [rootPath stringByAppendingPathComponent:@"Documents"];

//最常用的获取 Documents 的目录方式
documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 1, YES)objectAtIndex:0 ];

如何下载一个视频文件到 Documents 目录下的 Video 文件夹

//首先我们创建一个方法,用来创建 Video 文件夹
- (NSString *)createDirInDocuments:(NSString *)dirName{
    //获取 Documents 的文件路径
    NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 1, YES) objectAtIndex:0];

    //拼接成我们想要的文件的路径的字符串
    NSString *dirDocuments = [documentsPath stringByAppendingPathComponent:dirName];

    //NSFileManager 单例类,用于文件的操作
    NSFileManager *fileManager = [NSFileManager defaultManager];

    //判断本地是否存在某个文件/文件夹
    BOOL isExist = [fileManager fileExistsAtPath:dirDocuments];

    if (!isExist) {
        //如果不存在,创建文件夹
        NSError *error;
        BOOL isSuccess = [fileManager createDirectoryAtPath:dirDocuments
               withIntermediateDirectories:YES
                                attributes:nil
                                  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值