• iOS沙盒路径


    //    iphone沙箱模型的有四个文件夹,分别是什么,永久数据存储一般放在什么位置,得到模拟器的路径的简单方式是什么.

    //    documentstmpappLibrary

    //    (NSHomeDirectory())手动保存的文件在documents文件里

    //    Nsuserdefaults保存的文件在tmp文件夹里

    //    1Documents 目录:您应该将所有的应用程序数据文件写入到这个目录下。这个目录用于存储用户数据或其它应该定期备份的信息。

    //    2AppName.app 目录:这是应用程序的程序包目录,包含应用程序的本身。由于应用程序必须经过签名,所以您在运行时不能对这个目录中的内容进行修改,否则可能会使应用程序无法启动。

    //    3Library 目录:这个目录下有两个子目录:Caches Preferences

    //    Preferences 目录:包含应用程序的偏好设置文件。您不应该直接创建偏好设置文件,而是应该使用NSUserDefaults类来取得和设置应用程序的偏好.

    //    Caches 目录:用于存放应用程序专用的支持文件,保存应用程序再次启动过程中需要的信息。

    //    4tmp 目录:这个目录用于存放临时文件,保存应用程序再次启动过程中不需要的信息。

    //    获取这些目录路径的方法:

    //    1,获取家目录路径的函数

    //    NSString *homeDir = NSHomeDirectory();

    ////    2,获取Documents目录路径的方法

    //    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    //    NSString *docDir = [paths objectAtIndex:0];

    ////    3,获取Caches目录路径的方法:

    //    NSArray *paths1 = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);

    //    NSString *cachesDir = [paths objectAtIndex:0];

    ////    4,获取tmp目录路径的方法:

    //    NSString *tmpDir = NSTemporaryDirectory();

    读写

    //1.
     NSString *documentPathStr = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    //2.
    NSString *str = @"hello world";
    //3.
    NSString *strPath = [documentPathStr stringByAppendingPathComponent:@"str.mp4"];
    或者 NSString *newPath = [documentPath stringByAppendingString:@"/123.txt"];
    //4.
    [str writeToFile:strPath atomically:YES encoding:NSUTF8StringEncoding error:nil];
    
    其他的简单对象如NSArray,NSDictionary,NSData的步骤基本类似.
    #数组
     NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)firstObject];
        NSArray *array = @[@"A",@"B",@"C"];
    
        NSString *newPath = [documentPath stringByAppendingPathComponent:@"/eqw.txt"];
        [array writeToFile:newPath atomically:YES];
    
        NSLog(@"*********%@",newPath);
    #字典
    NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    
        NSDictionary *dict = @{@"张三":@"name",@"男":@"gender"};
        NSString *newPath = [documentPath stringByAppendingString:@"/zhangsan.txt"];
        [dict writeToFile:newPath atomically:YES];
        NSLog(@"********%@",newPath);
    
        NSDictionary *dic = [NSDictionary dictionaryWithContentsOfFile:newPath];
        NSLog(@"%@",dic);
    #NSData类型
    NSData类型稍微麻烦一点,需要转化为相应的格式
    NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    
        UIImage *iamge = [UIImage imageNamed:@"1.jpg"];
    //第二个参数为压缩系数
        NSData *data = UIImageJPEGRepresentation(iamge, 1);
    
        NSString *pathFile = [documentPath stringByAppendingString:@"/7898.jpg"];
        [data writeToFile:pathFile atomically:YES];
    
        NSLog(@"%@",pathFile);
    
        UIImage *newImage = [[UIImage alloc]initWithData:data];
        UIImageView *imageView = [[UIImageView alloc] initWithImage:newImage];
        [self.view addSubview:imageView];
    
    ######读取
    
    //NSString
    NSString *newStr = [NSString stringWithContentsOfFile:documents encoding:4 error:nil];
        NSLog(@"%@",newStr);
    //NSArray
    NSArray *NewArr = [NSArray arrayWithContentsOfFile:arrPath];
        NSLog(@"数组内容:%@",NewArr);
    //NSDictionary
    NSDictionary *newDic = [NSDictionary dictionaryWithContentsOfFile:DicPath];
        NSLog(@"字典内容:%@",newDic);

    文件管理器

        //1.初始化一个NSFileManager对象(使用单例)
        NSFileManager *manager = [NSFileManager defaultManager];
        //2.获取根路径
        NSString *rootPath = NSHomeDirectory();
        //3.创建文件
        rootPath = [rootPath stringByAppendingPathComponent:@"/Documents/man"];
        //4.创建目录
         //createDirectoryAtPath:文件路径
    ********withIntermediateDirectories:是否在当前路径下创建/text/myApp
        [manager createDirectoryAtPath:rootPath withIntermediateDirectories:YES attributes:nil error:nil];
        //添加并写入
        rootPath = [rootPath stringByAppendingPathComponent:@"/string.txt"];
        NSString *str = @"12345";
        [str writeToFile:rootPath atomically:YES encoding:NSUTF8StringEncoding error:nil];
    #或者可以使用另一种比较简单的创建方法
    //初始化一个NSFileManager对象
        NSFileManager *fileManager = [NSFileManager defaultManager];
        NSString *secondPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)firstObject] stringByAppendingString:@"secondPathString.txt"]
        NSString *stringContent = @"12345";
        //第二个参数为文件的内容,由于是NSData类型,所以需要转化
        [fileManager createFileAtPath:secondPath contents:[stringContent dataUsingEncoding:NSUTF8StringEncoding] attributes:nil];
    可以使用一个BOOL类型的对象接收,判断是否成功.
       #pragma mark ---- 文件管理 复制 ----  
         //创建另一个路径,然后复制
    [fileManager createFileAtPath:secondPath contents:[stringContent dataUsingEncoding:NSUTF8StringEncoding] attributes:nil];
        NSString *copyPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)firstObject]stringByAppendingString:@"copyPathString.txt"];
        BOOL result = [manager copyItemAtPath:secondPath toPath:copyPath error:nil];
        if (result) {
            NSLog(@"成功");
        }else{
            NSLog(@"失败啦!!!");
        }
    ####注意,创建另一个路径的时候,只创建路径即可,不要创建出文件,不然会失败的..
    
    #pragma Mark ---  文件管理 删除  ---
        //移除的是创建的文件,并不是存放的文件夹
        [FileManager removeItemAtPath:rootPath error:nil];
    
        NSLog(@"移除后路径:%@",rootPath);

     

     

     

     

     

  • 相关阅读:
    20160227.CCPP体系详解(0037天)
    MinerUtil.java 爬虫工具类
    MinerUrl.java 解析页面后存储URL类
    MinerThreadPool.java 线程池
    MinerStoreThread.java 存储线程
    MinerQueue.java 访问队列
    MinerMonitorThread.java 监控线程
    MinerHtmlThread.java 爬取页面线程
    上班跟打DotA感觉差不多?姑娘你没事儿吧
    7月3日云栖精选夜读:强大的PyTorch:10分钟让你了解深度学习领域新流行的框架
  • 原文地址:https://www.cnblogs.com/daxueshan/p/5852299.html
Copyright © 2020-2023  润新知