IOS的文件系统

当第一次启动app的时候,IOS操作系统会为此APP创建一个文件系统,该文件默认会有四个目录:
Documents:存储用户在操作app时产生的数据,在此目录下的数据可以通过iCloud进行同步。
Library:用户偏好设置,通常和此类NSUserDaults 搭配使用,在此目录下的数据可以通过iCloud进行同步。
tmp:存放临时数据,此目录下的数据不会与iCloud 进行同步。
app包:开发者不会操作此目录,通常是通过此NSBundle来获得内资源,如工程的素材。
这里写图片描述
下面是对以上四个目录的一些操作:

//获取程序的根目录
NSString *rootPath = NSHomeDirectory();
//获取根目录下的某个文件夹
NSArray *array = NSSearchPathForDirectoriesInDomains(**NSDocumentDirectory**,NSUserDomainMask,YES);
//得到一个数组,取出这个数组的第一个元素(一般只有一个元素)
NSString *documentsPath = [array ObjectAtIndex:0];

1.Documents:操作Documents文件夹,并在文件夹下载视频

//创建一个方法create创建相应的文件夹
-(NSString *)createDirInTmp:(NSString *)dirName{
    //获取Documents路径
    NSString *documentsPath = [documentsPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES) objectAtIndex:0];
    //拼接路径,因为上面语句获得的是documents文件夹的路径
    NSString *dirDocuments = [documentsPath stringByAppendingPathComponent:dirName];
    //创建NSFIleManager(与通知中心NSNotificationCenter类似,为单例类),用于判断是否存在这个文件夹
    NSFileManager *file = [NSFileManager defaultManager];
    //判断
    BOOL isExist = [file fileExistsAtPath:dirDocuments];
    //如果不存在,则创建文件夹
    if(!isExist)
    //创建文件夹
    BOOL isSuccess = [file createDirectoryAtPath:dirDocuments withIntermediateDirector:YES attributes:nil error:nil];
}
//通过上述方法创建Video文件夹
NSString *videoPath = [self creatDirInDocuments:@"Video"];
//从网络上下载视频到Video文件夹
if(videoPath != nil){
    NSString *videoUrlString = @" ~/xxx.mp4";
//需要截取网络路径“/”后面的内容,与Video路径拼接,得到文件存储路径
NSString *filePath = [videoPath stringByAppendingPathComponent:[videoUrlString lastPathComponent]];
//判断文件是否存在,依旧使用的是单例类:NSFileManager
//......
//将网络文件写入本地的方法
[fileManager createFileAtPath:filePath contents:data attributes:nil];
}

图片、视频都可以解析成二进制数,这也是文件下载到本地的一个远离。其实是对data的操作。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值