NSFileManager和文件的判断操作、获取目录、文件创建和目录创建。
来源:互联网 发布:井泵电机数据 编辑:程序博客网 时间:2024/05/21 08:39
/*首先,创建NSFileManagment对象,
*接着,将ceshi文件夹拖到桌面上使用。可以下载ceshi文件百度网盘:http://pan.baidu.com/s/1mgms8SK
*==============判断操作=============
*
* 1)判断是文件或文件夹是否存在
* 2) 判断是文件还是目录
* 3)判断是否可读
* 4)判断是否可写
* 5)判断是否可删除
*
* 对应下面的 isOK()方法
*
*
*++++++++++++++获取目录方式++++++++++++++
*
* 1)获取指定路径下,所有的文件或者文件夹路径
* 2)获取指定路径下,所有的文件、文件夹、该文件夹的子文件夹和子文件路径
*
* 对应下面的 getDirectory()方法
*
*
*^^^^^^^^^^^^^^文件创建和目录创建^^^^^^^^^^^^^^
*
* 1)文件创建
* 2)获得文件属性方式
* 3)目录创建,
* 4)拷贝文件
* 5)移动文件
* 6)删除文件
*
* 对应下面的 creatAndOptions()
*/
/*首先,创建NSFileManagment对象, *接着,将ceshi文件夹拖到桌面上使用。 *==============判断操作============= * * 1)判断是文件或文件夹是否存在 * 2) 判断是文件 还是目录 * 3)判断是否可读 * 4)判断是否可写 * 5)判断是否可删除 * * 对应下面的 isOK() 方法 * * *++++++++++++++获取目录方式++++++++++++++ * * 1)获取指定路径下,所有的文件或者文件夹路径 * 2)获取指定路径下,所有的文件、文件夹、该文件夹的子文件夹和子文件路径 * * 对应下面的 getDirectory() 方法 * * *^^^^^^^^^^^^^^文件创建和目录创建^^^^^^^^^^^^^^ * * 1)文件创建 * 2)获得文件属性方式 * 3)目录创建, * 4)拷贝文件 * 5)移动文件 * 6)删除文件 * * 对应下面的 creatAndOptions()*/#import <Foundation/Foundation.h>//1判断操作声明void isOK();//2获取目录方式void getDirectory();//3文件创建和操作void creatAndOptions();/*文件来回移动时用到的全局变量。文件存在的时候,将拷贝的目标文件删除掉使用。*/NSInteger flag;int main(int argc, const char * argv[]) { @autoreleasepool { //1 isOK()函数执行 // isOK(); //2 getDirectory()函数执行 // getDirectory(); //3 creatAndOptions()函数执行 creatAndOptions(); } return 0;}#pragma mark========判断操作==========void isOK(){ //创建NSFileManager对象 ===>>下面创建的是单例对象, NSFileManager *fm = [NSFileManager defaultManager]; //拼接一个文件路径 NSString *path = @"/Users/这里要变成你的用户名/Desktop/.DS_Store"; //NSString *str = @"/Users/这里要变成你的用户名/Desktop"; //1)判断是文件是否存在 (主要是看路径指的是目录还是文件) BOOL isYes; isYes = [fm fileExistsAtPath:path]; if (isYes) { NSLog(@"文件目录或文件存在 "); }else{ NSLog(@"文件目录获文件不存在 "); } //2)判断是文件还是目录 BOOL isDir;#warning 和上面的 fileExistAtPath: 要区分开; [fm fileExistsAtPath:path isDirectory:&isDir]; if (isDir) { NSLog(@"这是个****文件夹****"); }else{ NSLog(@"这是个****文件**** "); } //3)判断文件是否可读 BOOL isRead; isRead = [fm isReadableFileAtPath:path]; if (isRead) { NSLog(@"这个文件或者文件夹++++可读++++ "); }else{ NSLog(@"这个文件或者文件夹++++不可读++++"); } //4)文件是否可写 BOOL isWrite; isWrite = [fm isWritableFileAtPath:path]; if (isWrite) { NSLog(@"这个文件或者文件夹----可写----"); }else{ NSLog(@"这个文件或者文件夹----不可写----"); } //5)文件是否可删 BOOL isDel; isDel = [fm isDeletableFileAtPath:path]; if (isDel) { NSLog(@"这个文件或者文件夹^^^^可删^^^^"); }else{ NSLog(@"这个文件或者文件夹^^^^不可删^^^^"); } }#pragma mark+++++++获取目录方式++++++++void getDirectory(){ //创建NSFileManager对象 NSFileManager *fm = [NSFileManager defaultManager]; //定义路径 // NSString *path = @"/Users/这里要变成你的用户名/Desktop"; //自己在桌面建立了ceshi文件夹,进行的测试 NSString *path =@"/Users/这里要变成你的用户名/Desktop/ceshi"; //1)获取指定路径下,所有的文件或者文件夹路径 NSError *errDir = nil; NSArray *contents = [fm contentsOfDirectoryAtPath:path error:&errDir]; if (nil == errDir) { NSLog(@"获得目录下文件以及文件夹\n %@",contents); }else{ NSLog(@"目录获得失败\n 错误: %@",errDir); } //2)获取指定路径下,所有的文件、文件夹、该文件夹的子文件夹和子文件路径 //方式一:以递归方式来获取。(不推荐使用,因为在手机上可能会占内存) NSArray *subPathAtPathReturnArray = [fm subpathsAtPath:path]; NSLog(@"以递归方式获取\n %@",subPathAtPathReturnArray); //方式二:非递归方式来获取 NSError *errSubPath = nil; NSArray *subPathOfDirectoryReturnArray = [fm subpathsOfDirectoryAtPath:path error:&errSubPath]; if (nil == errSubPath) { NSLog(@"非递归方式获取\n %@",subPathOfDirectoryReturnArray); }else{ NSLog(@"获取失败"); } }#pragma mark^^^^^文件创建和目录创建^^^^^void creatAndOptions(){ //创建NSFileManager对象 NSFileManager *fm = [NSFileManager defaultManager]; //定义路径(这里面要有该路径,而且要带着你要写入文件的文件名。) NSString *path =@"/Users/这里要变成你的用户名/Desktop/ceshi/youyi.txt";#warning 如果文件没有存在,文件创建和获取文件属性不能通时进行。 //1文件创建 //1)要存储在文件的内容 NSString *contentStr = @"每当我错过一个女孩,我就往山上放一块砖,于是乎有了长城"; //2)把字符串转化为data类型 (目的:用来存放到文件中) NSData *data = [contentStr dataUsingEncoding:NSUTF8StringEncoding]; //3)创建文件 BOOL isCtreat; isCtreat = [fm createFileAtPath:path contents:data attributes:nil]; if (isCtreat) { NSLog(@"文件创建###成功###"); }else{ NSLog(@"文件创建###失败###"); } //2获取文件属性 NSError *errAttrbute = nil; //自己创建的ceshi/11.txt文件 NSString *pathAttribute = @"/Users/这里要变成你的用户名/Desktop/ceshi/attribute.txt"; NSDictionary *fileAttribute = [fm attributesOfItemAtPath:pathAttribute error:&errAttrbute]; if (nil == errAttrbute) { NSLog(@"文件属性获得成功,属性内容如下\n %@",fileAttribute); }else{ NSLog(@"文件属性获得失败"); } //3 目录的创建 withIntermediateDirectories--是否补上没有的文件夹目录 BOOL isCreDirAt; NSString *pathCreDirAt = @"/Users/这里要变成你的用户名/Desktop/ceshi/creatDirecr/"; NSError *errorDirectory = nil; isCreDirAt = [fm createDirectoryAtPath:pathCreDirAt withIntermediateDirectories:YES attributes:nil error:&errorDirectory]; if (isCreDirAt) { NSLog(@"文件夹创建成功"); }else{ NSLog(@"文件夹创建失败,失败原因:%@",errorDirectory); } //4 拷贝文件 (当目标路径已经有拷贝的文件时,这时提示拷贝错误。) BOOL isCopy; NSError *errorCopy = nil ; //源文件路径 NSString *sourcePath = @"/Users/这里要变成你的用户名/Desktop/ceshi/copy.txt"; //目标文件路径 NSString *targerPath = @"/Users/这里要变成你的用户名/Desktop/ceshi/bbbb/copy.txt"; isCopy = [fm copyItemAtPath:sourcePath toPath:targerPath error:&errorCopy]; if (isCopy) { NSLog(@"拷贝成功"); }else{ NSLog(@"拷贝出错,出错内容: %@",errorCopy); if ([fm fileExistsAtPath:targerPath]) { BOOL isExistsDel; NSError *errorExistDirDel; isExistsDel = [fm removeItemAtPath:targerPath error:&errorExistDirDel]; if (isExistsDel) { NSLog(@"删除成功"); }else{ NSLog(@"删除失败 %@",errorExistDirDel); } } } //5 移动文件 BOOL isMove; NSError *errorMove; NSString *sourcePathMove = @"/Users/这里要变成你的用户名/Desktop/ceshi/move.txt"; //目标文件路径 NSString *targerPathMove = @"/Users/这里要变成你的用户名/Desktop/ceshi/bbbb/move.txt"; if ([fm fileExistsAtPath:sourcePathMove]) { isMove = [fm moveItemAtPath:sourcePathMove toPath:targerPathMove error:&errorMove]; if (isMove) { NSLog(@"移动文件成功,移动路径为: %@",targerPathMove); }else{ NSLog(@"文件移动失败,失败原因 %@",errorMove); } }else{ isMove = [fm moveItemAtPath:targerPathMove toPath:sourcePathMove error:&errorMove]; if (isMove) { NSLog(@"移动文件成功,移动路径为: %@",targerPathMove); }else{ NSLog(@"文件移动失败,失败原因 %@",errorMove); } } //6 删除文件 BOOL isDirDel; NSError *errorDirDel; NSString *delete = @"/Users/这里要变成你的用户名/Desktop/ceshi/delete.txt"; isDirDel = [fm removeItemAtPath:delete error:&errorDirDel]; if (isDirDel) { NSLog(@"删除成功"); }else{ NSLog(@"删除失败 %@",errorDirDel); NSString *deletPath = @"/Users/这里要变成你的用户名/Desktop/ceshi/delete.txt"; //1)要存储在文件的内容 NSString *contentStr = @"每当我错过一个女孩,我就往山上放一块砖,于是乎有了长城"; //2)把字符串转化为data类型 (目的:用来存放到文件中) NSData *data = [contentStr dataUsingEncoding:NSUTF8StringEncoding]; //3)创建文件 BOOL isCtreat; isCtreat = [fm createFileAtPath:deletPath contents:data attributes:nil]; if (isCtreat) { NSLog(@"DeletPath文件创建###成功###"); }else{ NSLog(@"DeletPath文件创建###失败###"); } }}
0 0
- NSFileManager和文件的判断操作、获取目录、文件创建和目录创建。
- Java文件对象创建目录和文件
- JAVA创建文件目录和文件
- java 创建文件和文件目录
- [绍棠] iOS文件目录和文件操作 及NSFileManager的读写操作
- c#创建目录和文件
- ios NSFileManager创建目录、文件
- 目录和文件的操作
- shell递归创建目录和文件
- Linux创建目录和文件管理
- Java实现创建目录和文件
- Java 创建多级目录和文件
- linux sysfs中目录和文件节点的创建
- 目录和文件操作
- 目录和文件操作
- JAVA操作文件和文件目录
- 通过Eclipse创建一个Project ,Java Project 和Tomcat Project 生成的目录和文件
- 流和文件(文件目录的一些操作)
- 013.package 访问控制符
- weblogic宕机crash问题解决分享
- 第一篇 七月二十一
- HDU5288 OO’s Sequence(暴力枚举)
- HDU5294 Tricks Device(最大流+SPFA) 2015 Multi-University Training Contest 1
- NSFileManager和文件的判断操作、获取目录、文件创建和目录创建。
- 策略模式
- BFS和队列例题
- 子线程和主线程的通信问题
- Linux kernel 分析之七:内核启动-链接脚本
- UIButton 个人学习总结 (二)
- 【安卓基础三】adb命令
- 关于const引用、常量指针、指针常量的一些知识
- mac下gcc学习(一)