iOS开发沙盒机制文件操作

原创 2016年05月30日 10:53:50

上一篇写到了沙盒机制的原理,下面来进行实战,详细介绍一下根据沙盒机制来进行文件的各种操作

1.写入

//获取Documents文件路径

    NSString *doucumentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];


#pragma mark - 字符串写入本地

    //拼接文件路径 下面两种方法均可

         //拼接的路径test.TXT自己随便给,不过后缀应该注意一下

    NSString *filePath = [doucumentsPath stringByAppendingPathComponent:@"test.TXT"];

    //NSString *filePath = [doucumentsPath stringByAppendingString:@"/test.TXT"];

    //写入

    [str1 writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:nil];

#pragma mark - 数组写入本地

    //数组

    NSArray *arr = @[str1,str2];

    //拼接文件路径

    NSString *filePath = [doucumentsPath stringByAppendingPathComponent:@"arr.plist"];

    //写入

    [arr writeToFile:filePath atomically:YES];


#pragma mark - 字典的写入本地

    //字典

    NSDictionary *dic = @{@"tf1":_Tf1.text,@"tf2":_Tf2.text};

    //文件拼接

    NSString *filePath = [doucumentsPath stringByAppendingPathComponent:@"dic.plist"];

    //写入

    [dic writeToFile:filePath atomically:YES];

#pragma mark - NSData的写入本地

    //data

    NSData *data = [str1 dataUsingEncoding:NSUTF8StringEncoding];

    //文件拼接

    NSString *filePath = [doucumentsPath stringByAppendingPathComponent:@"data.TXT"];

    //写入

    [data writeToFile:filePath atomically:YES];


2.读取

    //获取文件路径

    //获取documnets文件路径

    NSString *documnetsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];


#pragma mark - 字符串读取

    //拼接文件路径

    NSString *filePath = [documnetsPath stringByAppendingPathComponent:@"test.TXT"];

    //读取

    NSString *str = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];

#pragma mark - 数组读取

   //文件路径拼接

    NSString *filePath = [documnetsPath stringByAppendingPathComponent:@"arr.xml"];

    //读取

    NSArray *arr = [NSArray arrayWithContentsOfFile:filePath];

#pragma mark - 字典读取

    //文件路径拼接

    NSString *filePath = [documnetsPath stringByAppendingPathComponent:@"dic.plist"];

    //读取

    NSDictionary *dic = [NSDictionary dictionaryWithContentsOfFile:filePath];

#pragma  mark - data读取

    //文件路径拼接

    NSString *filePath = [documnetsPath stringByAppendingPathComponent:@"data.TXT"];

    //读取

    NSData *data = [NSData dataWithContentsOfFile:filePath];

   当然NSData数据要进行转化之后进行数据的操作


3.创建

 //获取documents 文件路径

    NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)firstObject];

    //拼接文件夹路径

    NSString *filePath = [documentsPath stringByAppendingPathComponent:@"Images"];

    //创建文件管理对象

    NSFileManager *manager = [NSFileManager defaultManager]; 

    //创建

    [manager createDirectoryAtPath:filePath withIntermediateDirectories:YES attributes:nil error:nil];


4.移动

 //Images移动到 Caches

    //oldPath

    //获取tmp文件路径

    NSString *tempPath = NSTemporaryDirectory();

    //拼接

    NSString *oldPath = [tempPath stringByAppendingPathComponent:@"Images"];

    

    //newPath

    //获取Caches文件路径

    NSString *cachesPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject];

    //拼接

    NSString *newPath = [cachesPath stringByAppendingPathComponent:@"Images"];

    //创建文件管理对象

    NSFileManager *manager = [NSFileManager defaultManager];

    

    //移动

    [manager moveItemAtPath:oldPath toPath:newPath error:nil];


5.复制

    //1.获取tmp文件路径

    NSString *tmp = NSTemporaryDirectory();

    //2.文件拼接

    NSString *newPath = [tmp stringByAppendingPathComponent:@"Images"];

    //创建文件管理对象

    NSFileManager *manager = [NSFileManager defaultManager];

    

    //获取doucuments 文件路径

    NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];

    //文件拼接

    NSString *oldPath = [documentsPath stringByAppendingPathComponent:@"Images"];

    

    //复制

    [manager copyItemAtPath:oldPath toPath:newPath error:nil];


6.删除(清除缓存)

 //获取Caches文件路径

    NSString *cachesPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject];

    //拼接

    NSString *filePath = [cachesPath stringByAppendingPathComponent:@"Images"];

    

    //创建文件管理对象

    NSFileManager *manager = [NSFileManager defaultManager];

    

    [manager removeItemAtPath:filePath error:nil];


7.文件是否存在

//获取caches文件路径

    NSString *cachesPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject];

    //拼接

    NSString *filePath = [cachesPath stringByAppendingPathComponent:@"Images"];

    

    //创建文件管理对象

    NSFileManager *manager = [NSFileManager defaultManager];

    

    //判断是否存在

    BOOL isExist = [manager fileExistsAtPath:filePath];


希望对大家有所帮助


版权声明:本文为博主原创文章,未经博主允许不得转载。

(0053)iOS开发之沙盒(sandbox)机制和文件操作(三)

1、在Documents里创建目录 创建一个叫test的目录,先找到Documents的目录,   NSArray *paths = NSSearchPathFo...

(0052)iOS开发之沙盒(sandbox)机制和文件操作(二)

我们看看如何获取应用程序沙盒目录。包括真机的沙盒的目录。   1、获取程序的Home目录   NSString *homeDirectory...

iOS 开发之沙盒机制 & 文件操作 (NSFielManager)

原文链接:http://www.jianshu.com/p/349855b5a8ae iOS APP 可以在自己的沙盒里读写文件,但是,不可以访问其他 APP 的沙盒。每一个 APP 都是一个信息孤...

IOS开发 沙盒中的文件操作

1、获取程序的Home目录       NSString *path = NSHomeDirectory();      NSLog(@"path:%@",path);       ...
  • feosun
  • feosun
  • 2013年03月11日 10:52
  • 5315

[iOS开发]沙盒中的文件操作

这是我遇到的一个问题,不具备普遍性,最后解决的也很戏剧化。如下图就是出现了这个问题: 纠结了一个下午,各处找答案:通过一些网页,在stackoverflow上发现了一个答案,可能对大多数人有用:...

IOS沙盒(sandbox)机制和文件操作

转自:iOS学习之iOS沙盒(sandbox)机制和文件操作(二)
  • f10_s
  • f10_s
  • 2014年10月30日 10:28
  • 883

iOS沙盒(sandbox)机制和文件操作(二)

iOS学习之iOS沙盒(sandbox)机制和文件操作(一) 我们看看如何获取应用程序沙盒目录。包括真机的沙盒的目录。 1、获取程序的Home目录 ...

IOS 沙盒(sandbox)机制和文件操作

1、IOS沙盒机制( 沙盒(sandbox)机制)  IOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标...

IOS-沙盒机制和用户文件操作

1、IOS沙盒机制 IOS为每一个应用程序创建了一个文件系统结构去存储该应用程序文件,此区域成为沙盒,包括声音、图像、文本等文件都存放其中。 1、每个应用程序都有自己的存储空间 ...

iOS沙盒机制和文件操作

沙盒就是应用程序的安装过程中、系统为每个单独的应用程序生成它的主目录和一些关键的子目录  — 文件夹。   沙盒机制是一种安全体系,它规定了应用程序只能在本应用程序沙盒中读取文件,不可以访问其...
  • swanzhu
  • swanzhu
  • 2015年09月12日 15:12
  • 763
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS开发沙盒机制文件操作
举报原因:
原因补充:

(最多只允许输入30个字)