NSFileManager管理文件常用办法

2023-12-12 01:19

本文主要是介绍NSFileManager管理文件常用办法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

//  4.1  NSFileManager管理文件常用办法

//  4.2创建文件
//创建NSFileManager对象
NSFileManager*fileManager = [NSFileManager defaultManager];
    NSString*homePath1 = NSHomeDirectory();
NSLog(@"homePath1====%@",homePath1);
NSString*pathMg = [homePath1 stringByAppendingPathComponent:@"liRuYi2.text"];
//创建内容
NSString*text = @"媒介生而平等,但有的媒介比其它媒介更加平等,不是人们不读书了,而是文字阅读已经不再是唯一有价值、有营养的阅读形态了。";
//将字符串转换成NSData类型
NSData*date = [text dataUsingEncoding:NSUTF8StringEncoding];
//写入文件
    BOOL success = [fileManager createFileAtPath:pathMg contents:date attributes:nil];
    NSLog(@"%d",success);



//    4.3读取文件
//    4.3.1  创建NSFileManager对象
NSFileManager*fileManager2 = [NSFileManager defaultManager];
//4.3.2   根据路径读取文件
    NSData*fileDate = [fileManager2 contentsAtPath:pathMg];
//4.3.3    将NSDate转换成NSString
NSString*content = [[NSString alloc] initWithData:fileDate encoding:NSUTF8StringEncoding];
NSLog(@"content=====%@",content);

//    4.4 剪切复制
    NSString*homePath3 = NSHomeDirectory();
//源文件路径
NSString*srcPath = [homePath3 stringByAppendingPathComponent:@"liRuYi2.text"];
//目标路径
NSString*toPath = [homePath3 stringByAppendingPathComponent:@"Documents/file.text"];
//4.4.1剪切(移动)文件
//将src路径的文件剪切到toPath路径
    BOOL isSuccess = [fileManager2 moveItemAtPath:srcPath toPath:toPath error:nil];
    NSLog(@"%d",isSuccess);

//4.4.2 复制文件
//源文件路径
    NSString*srcPath2 = [homePath3 stringByAppendingPathComponent:@"file.text"];
//目标路径
NSString*toPath2 = [homePath3 stringByAppendingPathComponent:@"Library/good.text"];

    BOOL success2 = [fileManager2 copyItemAtPath:srcPath2 toPath:toPath2 error:nil];
     NSLog(@"%d",success2);


//    4.5 删除文件
//判断文件是否存在

    NSString*deletePath = [homePath3 stringByAppendingPathComponent:@"liRuYi2.text"];

    BOOL isExist = [fileManager2 fileExistsAtPath:deletePath];
    if (isExist) {
        //删除文件
        BOOL seccessDelete = [fileManager2 removeItemAtPath:deletePath error:nil];
        if (seccessDelete) {
NSLog(@"remove success");

UIAlertView*alertView = [[UIAlertView alloc] initWithTitle:nil message:@"remove success" delegate:self cancelButtonTitle:nil otherButtonTitles:@"确定", nil];
            [alertView show];



        }
    }

//    4.6获取文件大小
//获取文件的属性字典
    NSDictionary*fileDic = [fileManager2 attributesOfItemAtPath:toPath2 error:nil];
//获取文件大小
    NSNumber*fileSize = [fileDic objectForKey:NSFileSize];
NSLog(@"fileSize=======%@",fileSize);

//    5 写文件
//    数组 字典 字符串 NSData都是容纳数据的,他们都有一个writeToFile的方法

//5.1数组写入文件
    NSString *str1 = @"明月几时有";
    NSString *str2 = @"把酒问青天";
    NSArray *array = [NSArray arrayWithObjects:str1,str2, nil];
NSString*path10 = [homePath stringByAppendingPathComponent:@"hehe.text"];
//将数组中的数据写入文件
    [array writeToFile:path10 atomically:YES];

NSString*path11 = [homePath stringByAppendingPathComponent:@"hehe.plist"];
    [array writeToFile:path11 atomically:YES];


//   5.2 属性列表文件
//    数组只能写入NSNumber NSString NSDate NSData NSArray NSDictionary
//    数组,字典写入的文件叫属性列表(plist),可以用xcode打开编辑


//   6 读文件
//    数组 字典 字符串 NSData  同样的可以将文件数据读入程序
//    6.1数组读文件
//通过alloc创建,并读入文件数据
    NSArray*array1 = [[NSArray alloc] initWithContentsOfFile:path10];
NSLog(@"array1===========%@",array1);
//通过类方法创建,并读入文件数据
    NSArray*arry2 = [NSArray arrayWithContentsOfFile:path11];
NSLog(@"arry2 ===== %@",arry2);

//    补充 创建文件夹
//[[NSSearchPathForDirectoriesInDomains(NSDemoApplicationDirectory, NSUserDomainMask, YES)是一个数组,作用是获取路径
NSString*createDir = [[NSSearchPathForDirectoriesInDomains(NSDemoApplicationDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"test/test/test"];
//创建文件夹  createIntermediates该参数bool类型 是否创建文件夹路径中没有的文件夹目录
    [fileManager createDirectoryAtPath:createDir withIntermediateDirectories:YES attributes:nil error:nil];

这篇关于NSFileManager管理文件常用办法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/482742

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

JS常用组件收集

收集了一些平时遇到的前端比较优秀的组件,方便以后开发的时候查找!!! 函数工具: Lodash 页面固定: stickUp、jQuery.Pin 轮播: unslider、swiper 开关: switch 复选框: icheck 气泡: grumble 隐藏元素: Headroom

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

常用的jdk下载地址

jdk下载地址 安装方式可以看之前的博客: mac安装jdk oracle 版本:https://www.oracle.com/java/technologies/downloads/ Eclipse Temurin版本:https://adoptium.net/zh-CN/temurin/releases/ 阿里版本: github:https://github.com/

30常用 Maven 命令

Maven 是一个强大的项目管理和构建工具,它广泛用于 Java 项目的依赖管理、构建流程和插件集成。Maven 的命令行工具提供了大量的命令来帮助开发人员管理项目的生命周期、依赖和插件。以下是 常用 Maven 命令的使用场景及其详细解释。 1. mvn clean 使用场景:清理项目的生成目录,通常用于删除项目中自动生成的文件(如 target/ 目录)。共性规律:清理操作

019、JOptionPane类的常用静态方法详解

目录 JOptionPane类的常用静态方法详解 1. showInputDialog()方法 1.1基本用法 1.2带有默认值的输入框 1.3带有选项的输入对话框 1.4自定义图标的输入对话框 2. showConfirmDialog()方法 2.1基本用法 2.2自定义按钮和图标 2.3带有自定义组件的确认对话框 3. showMessageDialog()方法 3.1

工作常用指令与快捷键

Git提交代码 git fetch  git add .  git commit -m “desc”  git pull  git push Git查看当前分支 git symbolic-ref --short -q HEAD Git创建新的分支并切换 git checkout -b XXXXXXXXXXXXXX git push origin XXXXXXXXXXXXXX

java常用面试题-基础知识分享

什么是Java? Java是一种高级编程语言,旨在提供跨平台的解决方案。它是一种面向对象的语言,具有简单、结构化、可移植、可靠、安全等特点。 Java的主要特点是什么? Java的主要特点包括: 简单性:Java的语法相对简单,易于学习和使用。面向对象:Java是一种完全面向对象的语言,支持封装、继承和多态。跨平台性:Java的程序可以在不同的操作系统上运行,称为"Write once,

nginx介绍及常用功能

什么是nginx nginx跟Apache一样,是一个web服务器(网站服务器),通过HTTP协议提供各种网络服务。 Apache:重量级的,不支持高并发的服务器。在Apache上运行数以万计的并发访问,会导致服务器消耗大量内存。操作系统对其进行进程或线程间的切换也消耗了大量的CPU资源,导致HTTP请求的平均响应速度降低。这些都决定了Apache不可能成为高性能WEB服务器  nginx:

常用排序算法分析

1. 插入排序 1.1 性能分析 时间复杂度O(n^2), 空间复杂度O(1) 排序时间与输入有关:输入的元素个数;元素已排序的程度。 最佳情况,输入数组是已经排好序的数组,运行时间是n的线性函数; 最坏情况,输入数组是逆序,运行时间是n的二次函数。 1.2 核心代码 public void sort(){int temp;for(int i = 1; i<arraytoSort.