zoukankan      html  css  js  c++  java
  • Objective-C( Foundation框架 一 NSFileManager)

    NSFileManager

    用来管理文件系统的

    它可以用于常见的文件,文件夹操作(拷贝,剪切,创建)

    NSFileManager使用了单例模式(Singleton)

    使用defaultManager可以获得那个单例对象:[NSFileManager defaultManager];

    NSFileManager用于判断

    // 创建一个文件,且内容为hahdhahkf
            NSString *arr = @"hahdhahkf";
            [arr writeToFile: @"/Users/cloudwalk/Desktop/arr.plist" atomically:YES encoding:NSUTF8StringEncoding error:nil];
            // NSFileManager用于判断
            NSString *filepath = @"/Users/cloudwalk/Desktop/arr.plist";
            // 判断文件是否存在
            // 调用defaultManagr 创建一个文件管理的单例模式
            // 单例模式,在程序运行期间,只有一个对象存在
            NSFileManager *manager = [NSFileManager defaultManager];
            //文件是否存在,存在返回1,不存在返回0
     BOOL isYES = [manager fileExistsAtPath:filepath]; 
    NSLog(
    @"%d",isYES); // 文件是否可读
    isYES = [manager isReadableFileAtPath:filepath];
    NSLog(
    @"%d",isYES); // 文件是否可写
    isYES = [manager isWritableFileAtPath:filepath];
    NSLog(
    @"%d",isYES);

    判断是否是目录

            NSString *str = @"dsahgifg";
            [str writeToFile:@"/Users/cloudwalk/Desktop/strr,plist" atomically:YES encoding:NSUTF8StringEncoding error:nil];
            NSString *filePath = @"/Users/cloudwalk/Desktop/strr,plist";
            
            NSFileManager *manager = [NSFileManager defaultManager];
            // 文件是否存在,,存在返回1,不存在返回0
            BOOL isYes = [manager fileExistsAtPath:filePath];
            NSLog(@"%d",isYes);
            
            if (isYes)
            {
                BOOL isDir;
                // 判断是不是目录
                [manager fileExistsAtPath:filePath isDirectory:&isDir];
                
                if (isDir) {
                    NSLog(@"shi");
                }else{
                    NSLog(@"bushi");
                }
            }

    获取文件信息

            NSFileManager *fm = [NSFileManager defaultManager];
            NSString *filepath = @"/Users/cloudwalk/Desktop/test.plist";
            NSString *dirPath = @"/Users/cloudwalk/Desktop/gaoli/代码/";
            // 如何获得文件信息(属性)
            NSDictionary *dy = [fm attributesOfItemAtPath:filepath error:nil];
            NSLog(@"%@",dy);
            NSLog(@"%@ %@",[dy objectForKey:@"NSFileOwnerAccountName"], dy[@"NSFileOwnerAccountName"]);
            
            // 获取指定目录下文件及子目录
            // 使用递归的方式,获取当前所有文件夹及子目录下的文件
           NSArray *subPaths = [fm subpathsAtPath:dirPath];
            NSLog(@"subPaths = %@",subPaths);
            // 不使用递归的方式,获取当前所有文件夹及子目录下的文件
            subPaths = [fm subpathsOfDirectoryAtPath:dirPath error:nil];
            NSLog(@"subPaths = %@",subPaths);
            // 获取指定目录下文件信息(不再获取子目录下文件)
            subPaths = [fm contentsOfDirectoryAtPath:dirPath error:nil];
            NSLog(@"subPaths = %@",subPaths);

    创建目录,文件,copy文件,移动文件,删除文件

           // 创建文件管理对象
            NSFileManager *fm = [NSFileManager defaultManager];
            
            // 创建路径
            NSString *createPath = @"/Users/cloudwalk/Desktop/aaa/win.txt";
            
            // 创建目录是否成功
            //fm createDirectoryAtPath:@"路径" withIntermediateDirectories:YES会创建缺失的目录/NO不会创建缺失的目录 attributes:nil error:错误对象
            BOOL isYES =[fm createDirectoryAtPath:createPath withIntermediateDirectories:YES attributes:nil error:nil];
            if (isYES) {
                NSLog(@"成功");
            }
            
            // 如何创建文件

          NSString *str = @"我一定会考进HEIMA";

          NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];

            BOOL isYes;
             //fm createFileAtPath:@"路径" contents:NSData类型的数据/处理二进制数据的类 attributes:文件的属性的字典NSDictionary
            isYes = [fm createFileAtPath:createPath contents:data attributes:nil];
            if (isYes) {
                NSLog(@"%d",isYes);
            }
            // copy文件
            NSString *targetPath = @"/Users/cloudwalk/Desktop/gaoli/haha.txt";
            isYes = [fm copyItemAtPath:createPath toPath:targetPath error:nil];
            NSLog(@"%d",isYes);
            
            // 移动文件
            NSString *targetPath = @"/Users/cloudwalk/Desktop/haha.txt";
            [fm moveItemAtPath:createPath toPath:targetPath error:nil];
            
            // 删除文件
            NSString *targetPath = @"/Users/cloudwalk/Desktop/haha.txt";
            [fm removeItemAtPath:targetPath error:nil];

    NSFileManager 文件下载思路

    1.发送请求给服务器,要求下载某个文件

    2.服务器发出响应,返回文件数据

    3.手机客户端利用NSData来存放服务器返回的文件数据

    4.利用NSFileManager将NSData里面的文件数据写到新的文件中(createFilecreateFileAtPath)

  • 相关阅读:
    通过ajax前端后台交互/登录页和注册页前端后台交互详解/前端后台交互基础应用/几个后台函数的基础应用/php文件函数基础应用/php字符传函数基础应用/php数组函数基础应用
    >>>---PHP中的OOP-->面对过程与面对对象基础概念与内容--(封装、继承、多态)
    基于HBuilder开发手机APP-主页/跳转页面/切换选项卡
    PHP基础学习
    JavaScript学习-js中的数组/Boolean类/字符串String类
    关于gulp中顺序执行任务
    AugularJS从入门到实践(三)
    AugularJS从入门到实践(二)
    用CSS实现响应式布局
    React+ANTD项目使用后的一些关于生命周期比较实用的心得
  • 原文地址:https://www.cnblogs.com/1023843587qq/p/4801265.html
Copyright © 2011-2022 走看看