NSFileManager的使用

本文介绍如何使用Objective-C在iOS应用中进行文件管理和数据读写操作,包括创建目录、文件写入及混合数据类型的读取等过程。

废话不多说, 直接上代码吧  


- (void)test {
    
    // 获取NSFileManager实例
    NSFileManager *fileManager = [NSFileManager defaultManager];
    // 获取应用沙盒的目录
    /**
     *  @param 参数1 常用的有三种:
         1.NSDocumentDirectory, document目录
         2.NSCachesDirectory,  缓存目录
         3.NSLibraryDirectory
     *  @param 参数2  一般直接用这个NSUserDomainMask
     *  @param 参数3  此参数意思为是否展开目录 ,一般为YES
     *
     *
     */
    
    NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
    
    //在documenPath下拼接一个test的路径
    NSString *path = [documentPath stringByAppendingPathComponent:@"test"];
    //创建文件夹test
    [fileManager createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:nil];
    NSLog(@"%@", path);
    // 在test下拼接一个test.txt的文件名
    NSString *testPath = [path stringByAppendingPathComponent:@"test1.txt"];
    //[testPath writeToFile:testPath atomically:YES encoding:NSUTF8StringEncoding error:nil];
    
    //文件写入练习    写入字符串
    [[NSFileManager defaultManager] createFileAtPath:testPath contents:[@"hellow  world" dataUsingEncoding:NSUTF8StringEncoding]  attributes:nil];
    
    //搜索指定目录下所有文件: 两种方式都可以
    
    NSArray *files = [fileManager subpathsAtPath:documentPath];
    NSLog(@"%@",files);
    /*  打印结果
     2016-05-08 17:01:05.055 abc[26138:582734] (
     test,
     "test/.DS_Store",
     "test/test.c",
     "test/test.txt",
     "test/test0.txt",
     "test/test1.txt",
     test5
     )
     */
    
    NSArray *files1 = [fileManager subpathsOfDirectoryAtPath:documentPath error:nil];
    
    NSLog(@"%@",files1);
    /*  打印结果
     2016-05-08 17:01:05.055 abc[26138:582734] (
     test,
     "test/.DS_Store",
     "test/test.c",
     "test/test.txt",
     "test/test0.txt",
     "test/test1.txt",
     test5
     )
     */

    //删除指定目录的文件
    [fileManager removeItemAtPath:documentPath error:nil];
    
}
//混合数据的读写
- (void)test1 {
    
    NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
    
    //在documenPath下拼接一个test的路径
    NSString *path = [documentPath stringByAppendingPathComponent:@"test1.txt"];
    
    //穿件不同数据
    NSString *temp = @"hello world";
    int dataInt = 111;
    float dataFloat = 1.115f;
    NSLog(@"----------%.2f", dataFloat);
    //创建一个临时数据存储变量
    NSMutableData *dataM = [[NSMutableData alloc] init];
    
    
    //将数据拼接到dataM
    [dataM appendData:[temp dataUsingEncoding:NSUTF8StringEncoding]];
    [dataM appendBytes:&dataInt length:sizeof(dataInt)];
    [dataM appendBytes:&dataFloat length:sizeof(dataFloat)];
    
    //写入数据
    [dataM writeToFile:path atomically:YES];
    
    
    /***************以下为读取部分*****************/
    int intData;
    float floatData = 0.0;
    NSString *stringData;
    
    NSData *data = [NSData dataWithContentsOfFile:path];
    
    stringData = [[NSString alloc] initWithData:[data subdataWithRange:NSMakeRange(0, [temp length])] encoding:NSUTF8StringEncoding];
    [data getBytes:&intData range:NSMakeRange([temp length], sizeof(intData))];
    
    [data getBytes:&floatData range:NSMakeRange([temp length] + sizeof(intData), sizeof(floatData))];
    NSLog(@"%@, %d, %.2f", temp, intData, floatData);

    
    

}


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值