数据库,归档,反归档 修改删除文件夹

本文详细介绍了如何使用Objective-C进行文件夹的创建、修改、删除操作,并深入探讨了文件数据的归档与反归档过程,包括使用NSKeyedArchiver进行对象序列化与反序列化的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建修改文件夹删除文件夹

//NSFileManager
    //创建文件夹
    
    //1.在Documents创建一个文件夹
    NSString *documentPath=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
   // NSLog(@"documents:%@",documentPath);
    
    NSString *path=[documentPath stringByAppendingString:@"/个人收藏.txt"];
    
    //创建文件管理(单例),并创建文件夹
    [[NSFileManager defaultManager] createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:nil];
    
    //修改一个文件夹
    NSString *newPath=[documentPath stringByAppendingString:@"/岛国文化"];
    
    [[NSFileManager defaultManager] moveItemAtPath:path toPath:newPath error:nil];
    
    //删除
    [[NSFileManager defaultManager] removeItemAtPath:path error:nil];
   
    //判断某个文件是否存在
    //返回值是BOOL,YES存在,NO不存在
   BOOL f= [[NSFileManager defaultManager] fileExistsAtPath:path];
   // NSLog(@"%d",f);

归档反归档  1:(麻烦方法)

 //创建Person类实例对象
    
    Person *person1=[[Person alloc] init];
    person1.name=@"刘杰";
    person1.age=@"15";
    Person *person2=[[Person alloc] init];
    person2.name=@"李士杰";
    person2.age=@"29";
    
    //归档使用的NSData
    NSMutableData *person1Data=[NSMutableData data];
    
    //创建归档工具
    NSKeyedArchiver *achiver=[[NSKeyedArchiver alloc] initForWritingWithMutableData:person1Data];
    
    //进行归档
    [achiver encodeObject:person1 forKey:kPerson1];
    [achiver encodeObject:person2 forKey:kPerson2];
    
    //完成转换
    [achiver finishEncoding];
    
    //获取Documents路径
    NSString *documentsPath=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
    //拼接文件路径
    NSString *personPath=[documentsPath stringByAppendingString:@"/刘杰.XXOO"];
    //写入
    [person1Data writeToFile:personPath atomically:YES];
    NSLog(@"%@",documentsPath);
    
    
    
    
    
    
    //反归档
    //通过文件路径,获取data数据
    NSData *unData=[NSData dataWithContentsOfFile:personPath];
    
    //反归档工具
    NSKeyedUnarchiver *unArchiver=[[NSKeyedUnarchiver alloc] initForReadingWithData:unData];
    
    //反归档
    Person *p1=[unArchiver decodeObjectForKey:kPerson1];
    Person *p2=[unArchiver decodeObjectForKey:kPerson2];
    //结束反归档
    [unArchiver finishDecoding];
    NSLog(@"name:%@",p1.name);
    NSLog(@"name:%@",p2.name);
    */

归档反归档  用Array写入

  
    //获取Documents路径
    NSString *docPath=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
    //拼接文件路径
    NSString *filePath=[docPath stringByAppendingString:@"/personArray.plist"];
   
    Person *pn1=[[Person alloc] init];
    Person *pn2=[[Person alloc] init];
    pn1.name=@"张三";
    pn2.name=@"李四";
    
    NSArray *array=@[pn1,pn2];
    
    //归档
    [NSKeyedArchiver archiveRootObject:array toFile:filePath];
    
    //反归档
    NSArray *a=[NSKeyedUnarchiver unarchiveObjectWithFile:filePath];
    NSLog(@"%@",[a[0] name]);
    NSLog(@"%@",[a[1] name]);

归档反归档  简单方法

Person *pn1=[[Person alloc] init];
    pn1.name=@"帅哥";
    
    //归档
    [NSKeyedArchiver archiveRootObject:pn1 toFile:filePath];
    
    //反归档
    Person *p1=[NSKeyedUnarchiver unarchiveObjectWithFile:filePath];
    NSLog(@"%@",p1.name);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值