• NSFileManager文件管理


    前提,用到的东东:
    1、文件数据类:NSData类型(二进制)
    1)作用:专门用于将数据封装成二进制的类。数据(文本,图片,音频,视频....)  ==> NSData类型的对象
    2)编码方式:使用UTF8国际通用编码
         encoding:NSUTF8StringEncoding
    3)NSString与NSData相互转换
    NSString *contents = @"我是要保存到文件中去的内容,哈哈";
    //将NSString转换成NSData类型
    NSData *data = [contents dataUsingEncoding:NSUTF8StringEncoding];
    //将NSData转换成NSString,
    NSString *contents2 = [[NSString alloc]initWithData:data2 encoding:NSUTF8StringEncoding];
     
    atomically:原子性
     
    2、NSURL类型:
    必须以协议头(http://,ftp://,file://)
    可以创建目录,不能创建文件
    1) 什么是URL
    URL  :  统一资源定位符(Uniform Resource Locator)
    在互联网上可以唯一的定位一个资源(文件,音乐,图片..)
    http://www.tarena.com.cn/index.html
    在计算中也可以使用URL来定位一个资源
    file:///Users/tarena/Desktop/my.txt
    //将字符串转换成NSURL类型
    NSURL *url2 = [NSURL URLWithString:Str];
    //获取到数据
    NSData *htmlData = [NSData dataWithContentsOfURL:url2];
     
    2) 和PATH的区别:
             URL必须经访问协议开头(http://, ftp://, file://…), 是NSURL类型的对象
    PATH没有协议, 是字符串对象
     
    3、NSError类型
    用于获取错误信息
        NSError *error = nil;
        NSLog(@"简洁写入文件失败:%@", error.userInfo);
    4、文件操作:创建、写入文本、读取文本、移动、复制、删除文件
     
     5、类NSFileManager
    获取文件属性: attributesOfItemAtPath,返回字典
     
    判断是否存在: fileExistsAtPath
     创建+写入文件:createFileAtPath
    读取字:contentsAtPath
     
    使用NSString读写文本
    写入文件:writeToFile
    读取:stringWithContentsOfFile
     
    创建文件夹:createDirectoryAtPath
     删除文件:removeItemAtPath
    复制:copyItemAtPath
     
    NSFileManager *manager = [NSFileManager defaultManager];
        //创建文件
    BOOL flage = [manager createFileAtPath:@"/Users/tarena/Desktop/my.txt" contents:nil attributes:nil];
        if (flage) {
            NSLog(@"文件创建成功!");
        }else{
            NSLog(@"文件创建失败!");
        }
        //创建文件的同时给文件写入内容
        NSString *contents = @"我是要保存到文件中去的内容,哈哈";
        //NSString ==> NSData
        NSData *data = [contents dataUsingEncoding:NSUTF8StringEncoding];
        //创建并写入内容
        flage = [manager createFileAtPath:@"/Users/tarena/Desktop/my2.txt" contents:data attributes:nil];
        //字符串的简洁写入文件方法
        NSError *error = nil;
        flage= [contents writeToFile:@"/Users/tarena/Desktop/my3.txt" atomically:YES encoding:NSUTF8StringEncoding error:&error];
        //从文件中读取内容
        NSData *data2 = [manager contentsAtPath:@"/Users/tarena/Desktop/my3.txt"];
        //NSData ==> NSString
        NSString *contents2 = [[NSString alloc]initWithData:data2 encoding:NSUTF8StringEncoding];
        NSLog(@"从文件中读到的内容是:%@", contents2);
        //从文件中读取字符串内容的简洁方法
        NSString *contents3 = [NSString stringWithContentsOfFile:@"/Users/tarena/Desktop/my3.txt" encoding:NSUTF8StringEncoding error:nil];
        NSLog(@"直接从文件中读字符串:%@", contents3);
        //删除文件
        error = nil;
        res = [manager removeItemAtPath:@"/Users/tarena/Desktop/my.txt" error:&error];
        if(!res){
            NSLog(@"删除失败:%@", error.userInfo);
        }
        //判断目录是否存在
        NSString *path = @"/Users/tarena/Desktop/files";
        flage= [[NSFileManager defaultManager]fileExistsAtPath:path];
    //拷贝文件,如果目标已经存在,由拷贝失败
        NSString *sourcePath = @"/Users/tarena/Desktop/app.txt";
        NSString *targetPath = @"/Users/tarena/Desktop/app2.txt";
        if(![manager copyItemAtPath:sourcePath toPath:targetPath error:nil]){
            NSLog(@"拷贝失败!");
        }
     
    //使用URL来操作文件或目录
        //创建一个目录
        NSURL *url = [NSURL URLWithString:@"file:///Users/tarena/Desktop/urldir"];
        if (![manager createDirectoryAtURL:url withIntermediateDirectories:YES attributes:nil error:nil]){
            NSLog(@"使用URL创建目录失败!");
        }
        //使用path来将一个文件的二进制数据读入到NSData(假设这个文件是图片,或视频等,就不能读成字符串)
        NSData *data = [NSData dataWithContentsOfFile:@"/Users/tarena/Desktop/app.txt"];
        NSString *str = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
        NSLog(@"%@", str);
        //使用URL将一个文件的二进制数据读入内存中(使用NSData对象来封装)
        NSString *urlStr = @"http://tmooc.cn/web/library/library.html";
    //将字符串转换成NSURL类型
        NSURL *url2 = [NSURL URLWithString:urlStr];
    //获取到数据
        NSData *htmlData = [NSData dataWithContentsOfURL:url2];
    //将数据转换成NSString类型
        NSString *htmlStr = [[NSString alloc]initWithData:htmlData encoding:NSUTF8StringEncoding];
        NSLog(@"%@", htmlStr);
     
    //获取文件属性
    NSString *path=[self.documentPath stringByAppendingPathComponent:@"hello.txt"];
    NSDictionary *dic=[[NSFileManager defaultManager]attributesOfItemAtPath:path error:nil];
    NSLog(@"%@",[dic description]);//输出文件的属性内容
    NSUInteger fileSize=[dic[NSFileSize]integerValue];//文件大小是以为字节单位
    NSLog(@"文件大小:%lu",(unsigned long)fileSize);
  • 相关阅读:
    学习方法与经验总结
    工具综合症?资料收集狂?
    SpringMVC 过滤器Filter使用解析
    Spring 管理Filter和Servlet
    pom.xml配置详解
    开发Java web应用程序的介绍
    java web构建学习(概念基础)
    题目1474:矩阵幂
    题目1473:二进制数
    Python strip()方法
  • 原文地址:https://www.cnblogs.com/lignpeng/p/5458355.html
Copyright © 2020-2023  润新知