• Foundation 框架 NSFileManager,NSData 简单的文件操作


    一、简单展示NSFileManager的使用

    #import <Foundation/Foundation.h>
    
    int main(int argc, const char * argv[])
    {
    
        @autoreleasepool {
            //创建文件管理对象
            NSFileManager *fm = [NSFileManager defaultManager];
            //要操作的文件名
            NSString *fname = @"myfile";
            //获取文件的字典
            NSDictionary *attr;
            //当前路径
            NSString *path;
            //获取当前路径
            path = [fm currentDirectoryPath];
            //NSLog(@"
    The current path is : %@", path);
            
            //检测文件是否存在
            if ([fm fileExistsAtPath: fname] == NO) {
                //如果不存在则建立一个文件
                [fm createFileAtPath: fname contents: NULL attributes:nil];
                //NSLog(@"
    The file is not exist!");
                //return 0;
            }
            //拷贝创建一个新文件, 新文件若已存在则报错
            if ([fm copyItemAtPath: fname toPath: @"newFile" error: NULL] == NO) {
                NSLog(@"
     Can't copy the file");
                return 1;
            }
            //检测两个文件内容是否相同
            if ([fm contentsEqualAtPath: fname andPath: @"newFile"] == NO) {
                NSLog(@"
    The contents is not same");
                return 2;
            }
            //移动或者改名文件
            if ([fm moveItemAtPath: @"newFile"  toPath: @"myFile2" error:NULL] == NO) {
                NSLog(@"
    Can't change the name");
                return 3;
            }
            //获取文件数据字典
            if ((attr = [fm attributesOfItemAtPath: fname error:NULL]) == nil) {
                NSLog(@"
    Get attributets failed");
                return 4;
            }
            //文件大小
            NSLog(@"%@", attr[NSFileSize]);
            //文件类型
            NSLog(@"%@", attr[NSFileType]);
            //创建者
            NSLog(@"%@", attr[NSFileOwnerAccountName]);
            //
            NSLog(@"%@", attr[NSFileCreationDate]);
            //显示文件内容
            NSLog(@"
     Show the file contents");
            NSLog(@"
    %@", [NSString stringWithContentsOfFile: fname encoding:NSUTF8StringEncoding error:NULL]);
        }
        return 0;
    }

     二、通过NSData完成副本制作

     1 int main(int argc, const char * argv[])
     2 {
     3 
     4     @autoreleasepool {
     5         //通过NSDate来完成文件副本制作
     6         NSFileManager *fm = [NSFileManager defaultManager];
     7         NSData *dt;
     8         
     9         dt = [fm contentsAtPath: @"myfile"];
    10         
    11         if (dt == nil) {
    12             NSLog(@"Read file failed....");
    13             return 0;
    14         }
    15         
    16         //将缓冲区NSData中的内容复制到文件中
    17         if ([fm createFileAtPath:@"myFavoriteFile" contents: dt attributes:nil] == NO) {
    18             NSLog(@"Creat backups failed");
    19             return 1;
    20         }
    21         
    22         //读出文件内容
    23         NSLog(@"
    %@", [NSString stringWithContentsOfFile:@"myFavoriteFile" encoding: NSUTF8StringEncoding error:NULL]);
    24     }
    25     return 0;
    26 }

    三、简单的目录操作

     1 #import <Foundation/Foundation.h>
     2 
     3 int main(int argc, const char * argv[])
     4 {
     5 
     6     @autoreleasepool {
     7         NSString *newDir = @"newDir";
     8         NSString *currentPath;
     9         NSFileManager *fm = [NSFileManager defaultManager];
    10         
    11         //获取当前路径
    12         currentPath = [fm currentDirectoryPath];
    13         NSLog(@"
    Currentpath is : 
    %@", currentPath);
    14         
    15         //在当前目录下新建一个目录
    16         if ([fm createDirectoryAtPath:newDir withIntermediateDirectories:TRUE attributes:nil error:NULL] == NO) {
    17             NSLog(@"
    Couldn't creat the directory...");
    18             return 0;
    19         }
    20         
    21         //更改路径名
    22         if ([fm moveItemAtPath: newDir toPath: @"changeDir" error:NULL] == NO) {
    23             NSLog(@"
    Change directory name failed");
    24             return 2;
    25         }
    26         
    27         //更改当前路径
    28         if ([fm changeCurrentDirectoryPath:@"changeDir"] == NO) {
    29             NSLog(@"
    Change current directory failed");
    30             return 1;
    31         }
    32         NSLog(@"
    After change current directory.....");
    33         currentPath = [fm currentDirectoryPath];
    34         NSLog(@"
    Currentpath is : 
    %@", currentPath);
    35     }
    36     return 0;
    37 }
  • 相关阅读:
    javascript 解析json数据
    解析 对象列表的JSON数据 []、[{}] 中括号
    # 指针
    # 栈内存和堆内存
    # Linux学习笔记
    # jsp及servlet学习笔记
    # Git学习笔记
    # Excel批量处理数据
    # 数学建模算法
    # VsCode 配置C++调试运行
  • 原文地址:https://www.cnblogs.com/pretty-guy/p/3957603.html
Copyright © 2020-2023  润新知