zoukankan      html  css  js  c++  java
  • 文件操作(NSFileManager)

    iOS 沙盒机制,只能访问自己应用目录下的文件。每个沙盒包括三个文件夹:Documents,Library和tmp。Library包含Caches,Praferences目录。

    1.获取沙盒根目录

    //沙盒根目录
        NSLog(@"%@",NSHomeDirectory());

    2.获取Documents目录路径

    1 //documents目录 ,两种方式
    2     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    3     NSLog(@"%@",[paths objectAtIndex:0]);
    4     NSLog(@"%@",[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]);

    3.获取Library目录路径

    1 //library目录
    2     NSArray *pathss = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
    3     NSLog(@"%@",[pathss objectAtIndex:0]);
    4     NSLog(@"%@",[NSHomeDirectory() stringByAppendingPathComponent:@"Library"]);

    4.获取Cache目录路径

    1 //Cache目录
    2     NSArray *pathss1 = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
    3     NSLog(@"%@",[pathss1 objectAtIndex:0]);

    5.获取tmp目录路径

    //tmp目录
        NSLog(@"%@",NSTemporaryDirectory());

    Documents:苹果建议将程序创建产生的文件以及应用浏览产生的文件数据保存在该目录下,iTunes备份和恢复的时候会包括此目录

    Library:存储程序的默认设置或其它状态信息;

    Library/Caches:存放缓存文件,保存应用的持久化数据,用于应用升级或者应用关闭后的数据保存,不会被itunes同步,所以为了减少同步的时间,可以考虑将一些比较大的文件而又不需要备份的文件放到这个目录下。

    tmp:提供一个即时创建临时文件的地方,但不需要持久化,在应用关闭后,该目录下的数据将删除,也可能系统在程序不运行的时候清除。

     

    6.创建文件夹和文件,以及对文件的写入,读取,属性,删除

     1 //创建文件夹
     2     NSFileManager *fileManger = [NSFileManager defaultManager];
     3     NSString *test = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"test"];
     4     //创建目录
     5     BOOL res = [fileManger createDirectoryAtPath:test withIntermediateDirectories:YES attributes:nil error:nil];
     6     if (res) {
     7         NSLog(@"创建目录成功");
     8     }
     9 //创建文件
    10     NSString * file = [test stringByAppendingPathComponent:@"file.txt"];
    11     BOOL ress = [fileManger createFileAtPath:file contents:nil attributes:nil];
    12     if (ress) {
    13         NSLog(@"创建文件成功");
    14     }
    15 //写数据到文件,注意:文件要存在。
    16     NSString *documentsPath = [paths objectAtIndex:0];
    17     NSString *testDirectory = [documentsPath stringByAppendingPathComponent:@"test"];
    18     NSString *testpath = [testDirectory stringByAppendingPathComponent:@"file.txt"];
    19     NSString *content = @"这是测试内容!";
    20     BOOL resss = [content writeToFile:testpath atomically:YES encoding:NSUTF8StringEncoding error:nil];
    21     if (resss) {
    22         NSLog(@"文件写入成功");
    23     }else
    24     {
    25         NSLog(@"shibai");
    26     }
    27     
    28 //读文件中的数据
    29     NSString * data = [NSString stringWithContentsOfFile:testpath encoding:NSUTF8StringEncoding error:nil];
    30     NSLog(@"%@",data);
    31     
    32 //文件属性
    33     
    34 //删除文件
    35     
    36     BOOL ressss = [fileManger removeItemAtPath:testpath error:nil];
    37     if (ressss) {
    38         NSLog(@"删除成功");
    39     }
    40 //判断文件是否存在,
    41     NSLog(@"%@",[fileManger fileExistsAtPath: testpath]?@"YES":@"NO");
    42 }
  • 相关阅读:
    Python服务Dokcer化并k8s部署实例
    Docker Machine
    Docker使用Portainer搭建可视化界面
    三小时攻克 Kubernetes!
    Docker使用pipework配置本地网络
    使用kubeadm安装kubernetes1.12.2版本脚本【h】
    rsync详解之exclude排除文件(转)
    linux生成指定大小的文件(转)
    chown将指定文件的拥有者改为指定的用户或组(转)
    Linux系统分析命令总结
  • 原文地址:https://www.cnblogs.com/kfgcs/p/6386859.html
Copyright © 2011-2022 走看看