沙盒路径

Documents   苹果建议将程序中建立的或在程序中浏览到的文件数据保存在该目录下,iTunes备份和恢复的时候包括此目录
Library    存储程序的默认设置或其他状态信息
Library/Catches   存放缓存文件,此目录不会在应用退出删除,iTunes不会备份此目录
tmp 提供一个即时创建临时文件的地方


获取程序的Home目录
NSString *homeDirectory = HSHomeDirectory();
模拟器上  /Users/rongfzh/Library/Application Support/iPhone Simulator/5.1/Applications/3B8EC78A-5EEE-4C2F-B0CB-4C3F02B996D2  
真机上 
/var/mobile/Applications/3B8EC78A-5EEE-4C2F-B0CB-4C3F02B996D2

获取document目录
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *path = [paths objectAtIndex:0];

获取Cache目录
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES);
NSString *path = [paths objectAtIndex:0 ];

获取Library目录
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES);
NSString *path = [paths objectAtIndex:0];

获取Tmp目录
NSString *tmpDir = NSTemporaryDirectory();

写入文件
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES );
NSSting *docDir = [paths objectAtIndex;0 ];
if(!docDir){
    NSLog(@“Documents 目录未找到”);
}
NSArray *array = [[NSArray alloc] initWithObjects:@“内容”,@“content”,nil];
NSString *filePath = [docDir stringByAppendingPathComponent:@“testFile.txt”];
[array writeToFile:filePath atomically:YES];

读取文件
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *docDir = [paths objectAtIndex:0];
NSString *filePath = [docDir stringByAppendingPathComponent:@“testFile.txt”];
NSArray *array =[[NSArray alloc] initWithContentsOfFile:filePath];

NSFileManager的使用 
在Documents里创建目录
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *documentDirectory = [paths objectAtIndex:0];
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *testDirectory = [documentDirectory stringByAppendingPathComponent:@“test”];
// 创建目录
[fileManager createDirectoryAtPath:testDirectory withIntermediateDirectories:YES attribute:nil error :nil];

在test目录下创建文件
接着上面的代码testPath要用stringByAppendingPathComponent拼接上你要生成文件名。这样就可以写入了
NSString *testPath = [testDirectory stringByAppendingPathComponent:@“test.txt”];
NSString *string = @“写入内容”;
[fileManager createFileAtPath:testPath contents:[string dataUsingEncoding:NSUTF8StringEncoding] attributes:nil];

获取目录列里所有文件名
两种方法获取 subPathsOfDirectoryAtPath 和subpahtsAtPath
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *myDirectory = [documentsDirectory stringByAppendingPathComponent:@“text”];
NSArray *file = [fileManager subpathsOfDirectoryAtPath:myDirectory error :nil];
NSArray *files = [fileManager subpathsAtPath:myDirectory];

fileManager 使用操作当前目录
  1. //创建文件管理器  
  2.     NSFileManager *fileManager = [NSFileManager defaultManager];  
  3.     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
  4.     NSString *documentsDirectory = [paths objectAtIndex:0];  
  5.     //更改到待操作的目录下  
  6.     [fileManager changeCurrentDirectoryPath:[documentsDirectory stringByExpandingTildeInPath]];  
  7.     //创建文件fileName文件名称,contents文件的内容,如果开始没有内容可以设置为nil,attributes文件的属性,初始为nil  
  8.     NSString * fileName = @"testFileNSFileManager.txt";  
  9.     NSArray *array = [[NSArray alloc] initWithObjects:@"hello world",@"hello world1", @"hello world2",nil];  
  10.     [fileManager createFileAtPath:fileName contents:array attributes:nil];  

changeCurrentDirectoryPath目录更改到当前操作目录时,做文件读写就很方便了,不用加上全路径


删除文件
  1. [fileManager removeItemAtPath:fileName error:nil];  
混合数据的读写

用NSMutableData创建混合数据,然后写到文件里。并按数据的类型把数据读出来

写入数据
  1. NSString * fileName = @"testFileNSFileManager.txt";  
  2. NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
  3. NSString *documentsDirectory = [paths objectAtIndex:0];  
  4. //获取文件路径  
  5. NSString *path = [documentsDirectory stringByAppendingPathComponent:fileName];  
  6. //待写入的数据  
  7. NSString *temp = @"nihao 世界";  
  8. int dataInt = 1234;  
  9. float dataFloat = 3.14f;  
  10. //创建数据缓冲  
  11. NSMutableData *writer = [[NSMutableData alloc] init];  
  12. //将字符串添加到缓冲中  
  13. [writer appendData:[temp dataUsingEncoding:NSUTF8StringEncoding]];     
  14. //将其他数据添加到缓冲中  
  15. [writer appendBytes:&dataInt length:sizeof(dataInt)];  
  16. [writer appendBytes:&dataFloat length:sizeof(dataFloat)];    
  17. //将缓冲的数据写入到文件中  
  18. [writer writeToFile:path atomically:YES];  

读取刚才写入的数据
  1. //读取数据:  
  2.    int intData;  
  3.    float floatData = 0.0;  
  4.    NSString *stringData;  
  5.      
  6.    NSData *reader = [NSData dataWithContentsOfFile:path];  
  7.    stringData = [[NSString alloc] initWithData:[reader subdataWithRange:NSMakeRange(0, [temp length])]  
  8.                                   encoding:NSUTF8StringEncoding];  
  9.    [reader getBytes:&intData range:NSMakeRange([temp length], sizeof(intData))];  
  10.    [reader getBytes:&floatData range:NSMakeRange([temp length] + sizeof(intData), sizeof(floatData))];  
  11.    NSLog(@"stringData:%@ intData:%d floatData:%f", stringData, intData, floatData);  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值