OC中的沙盒机制

沙盒机制

每个沙盒含有3个文件夹:Documents,   Library,  和   tmp。因为应用的沙盒机制,应用只能在几个目录下读写文件。

Documents:苹果建议将程序中建立的或在程序中浏览到的文件数据保存在该目录下,iTunes备份和恢复的时候会包括此目录。

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

Library/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除。

tmp:提供一个即时创建临时文件的地方。


获取Documents目录

- (void)viewDidLoad {
    [super viewDidLoad];
    //方法1)直接获取Documents文件夹路径
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
    NSLog(@"%@", paths);
    
    //方法2)直接获取Documents文件夹路径
    NSString *documentsDirectory = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
    NSLog(@"%@", documentsDirectory);
    
    //方法3)拼接字符串获取Documents文件夹路径
    NSArray *pathsTwo = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *docDir = [pathsTwo objectAtIndex:0];
    NSLog(@"%@", docDir);

    
}



获取沙盒文件

- (void)viewDidLoad {
    [super viewDidLoad];
    
    //获取家目录路径的函数
    NSString *homeDir = NSHomeDirectory();
    
    
    //获取Documents目录路径的方法
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *docDir = [paths objectAtIndex:0];

    
    //获取Caches目录路径的方法
    NSArray *paths1 = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
    NSString *cachesDir = [paths1 objectAtIndex:0];

    
    //获取tmp目录路径的方法
    NSString *tmpDir = NSTemporaryDirectory();

    
}




创建文件夹

- (void)viewDidLoad {
    [super viewDidLoad];
    
    //方法)创建文件夹
    
    //先找出APP的路径,然后在后面加一个/newWwrd(要创建的文件夹名)
    NSString *New = [NSString stringWithFormat:@"%@/Documents/newWord",NSHomeDirectory()];
    
    //在Documents文件夹下面创建一个文件夹
    //withIntermediateDirectories设置为YES,这样就能建立多级目录了。如果是一级目录,可以设置为NO
    BOOL yesOrNo = [[NSFileManager defaultManager]createDirectoryAtPath:New withIntermediateDirectories:YES attributes:nil error:nil];
    
    //在桌面上command+shift+G,输入一下路径,验证有没有创建成功
    NSLog(@"%@", New);
    
    
}




在创建文件夹内,创建一个文件

- (void)viewDidLoad {
    [super viewDidLoad];
    
    //方法)创建文件夹
    
    //先找出APP的路径,然后在后面加一个/newWwrd(要创建的文件夹名)
    NSString *New = [NSString stringWithFormat:@"%@/Documents/newWord",NSHomeDirectory()];
    
    //在Documents文件夹下面创建一个文件夹
    //withIntermediateDirectories设置为YES,这样就能建立多级目录了。如果是一级目录,可以设置为NO
    BOOL yesOrNo = [[NSFileManager defaultManager]createDirectoryAtPath:New withIntermediateDirectories:YES attributes:nil error:nil];
    
    //在桌面上command+shift+G,输入一下路径,验证有没有创建成功
    NSLog(@"%@", New);
    
    
    //方法)在新建的New文件夹下新建一个文件
    
    //先在新建的New文件夹路径下面,添加一个/123.mp3(要创建的文件名及格式)的路径
    NSString *NewOne = [NSString stringWithFormat:@"%@/123.mp3",New];
    
    //在包含123.mp3路径下,开始创建文件
    [[NSFileManager defaultManager]createFileAtPath:NewOne contents:nil attributes:nil];
    
    
}




移除文件

- (void)viewDidLoad {
    [super viewDidLoad];
    
    //方法)创建文件夹
    
    //先找出APP的路径,然后在后面加一个/newWwrd(要创建的文件夹名)
    NSString *New = [NSString stringWithFormat:@"%@/Documents/newWord",NSHomeDirectory()];
    
    //在Documents文件夹下面创建一个文件夹
    //withIntermediateDirectories设置为YES,这样就能建立多级目录了。如果是一级目录,可以设置为NO
    BOOL yesOrNo = [[NSFileManager defaultManager]createDirectoryAtPath:New withIntermediateDirectories:YES attributes:nil error:nil];
    
    //在桌面上command+shift+G,输入一下路径,验证有没有创建成功
    NSLog(@"%@", New);
    
    
    //方法)在新建的New文件夹下新建一个文件
    
    //先在新建的New文件夹路径下面,添加一个/123.mp3(要创建的文件名及格式)的路径
    NSString *NewOne = [NSString stringWithFormat:@"%@/123.mp3",New];
    
    //在包含123.mp3路径下,开始创建文件
    [[NSFileManager defaultManager]createFileAtPath:NewOne contents:nil attributes:nil];
    
    
    
    //方法)删除文件
    //先通过路径找到文件,再删除(已经删除123.mp3)
    [[NSFileManager defaultManager]removeItemAtPath:NewOne error:nil];
    
    
}



读取bundle文件

- (void)viewDidLoad {
    [super viewDidLoad];
    
    //读取bundle文件
    
    //方法1)按照文件路径读取
    NSString *pathBundle = [[NSBundle mainBundle]pathForResource:@"登鹳雀楼" ofType:@"txt"];
    NSString *outPathBundle = [NSString stringWithContentsOfFile:pathBundle encoding:NSUTF8StringEncoding error:nil];
    NSLog(@"%@", outPathBundle);
    
    
    //方法2)按照URL方法读取
    NSURL *pathUrl = [[NSBundle mainBundle]URLForResource:@"登鹳雀楼" withExtension:@"txt" subdirectory:nil localization:nil];
    
    NSString *outPathUrl = [NSString stringWithContentsOfURL:pathUrl encoding:NSUTF8StringEncoding error:nil];
    NSLog(@"%@", outPathUrl);
    
    
}




Data存取

- (void)viewDidLoad {
    [super viewDidLoad];
    
    //先创建一个文件夹
    NSString *New = [NSString stringWithFormat:@"%@/Documents/NewWord",NSHomeDirectory()];
    
    BOOL yesOrNo = [[NSFileManager defaultManager]createDirectoryAtPath:New withIntermediateDirectories:YES attributes:nil error:nil];
    
    
    //在文件夹下面创建一个文件
    NSString *filePath = [NSString stringWithFormat:@"%@/123.mp3", New];
    
    [[NSFileManager defaultManager]createFileAtPath:filePath contents:nil attributes:nil    ];
    

    //Data读取数据
    NSString *mp3String = [[NSBundle mainBundle]pathForResource:@"追风少年" ofType:@"mp3"];
    NSData *data = [[NSData alloc]initWithContentsOfFile:mp3String];
    
    
    //将Data写入沙盒文件
    [data writeToFile:filePath atomically:YES];
    
    //打印路径,检查有没有创建好
    NSLog(@"%@", New);
    
    
}




转载于:https://my.oschina.net/LBBB/blog/653838

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值