黑马程序员——Foundation框架——NSFileManager介绍及使用
来源:互联网 发布:st单片机仿真器 编辑:程序博客网 时间:2024/05/20 06:38
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一、NSFileManager介绍
NSFileManager是用来管理文件系统的 它可以用来进行常见的文件\文件夹操作(拷贝、剪切、创建等)
NSFileManager使用了单例模式singleton使用defaultManager方法可以获得那个单例对象[NSFileManager defaultManager]
二、NSFileManager基本使用方法
- (BOOL)fileExistsAtPath:(NSString *)path;
path这个文件或文件夹(目录)是否存在
- (BOOL)fileExistsAtPath:(NSString *)pathisDirectory:(BOOL *)isDirectory;
path这个文件或文件夹是否存在, isDirectory代表是否为文件夹
- (BOOL)isReadableFileAtPath:(NSString *)path;
path这个文件或文件夹是否可读
- (BOOL)isWritableFileAtPath:(NSString *)path;
path这个文件或文件夹是否可写
- (BOOL)isDeletableFileAtPath:(NSString *)path;
path这个文件或文件夹是否可删除
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { //NSFileManager用于判断 NSString *filePath = @"/Users/zhaoxiaohu/Desktop/arr.plist"; NSString *filePath2 = @"/"; // 1) 判断文件是否存在 //创建文件管理对象 //调用defaultManager 创建一个文件管理的单例对象 //单例对象:在程序运行期间,只有一个对象存在 NSFileManager *fm = [NSFileManager defaultManager]; // YES 存在 NO不存在 BOOL isYES = [fm fileExistsAtPath:filePath]; NSLog(@"-->%d",isYES); if(isYES){ BOOL isDir; // 2) 判断是否是一个目录 [fm fileExistsAtPath:filePath isDirectory:&isDir]; if (isDir) { NSLog(@"这是一个目录"); }else{ NSLog(@"这不是一个目录"); } } // 3) 判断文件是否可读 isYES = [fm isReadableFileAtPath:filePath]; // 4) 是否可写 isYES = [fm isWritableFileAtPath:filePath2]; // 5) 是否可删除 isYES = [fm isDeletableFileAtPath:filePath2]; NSLog(@"-->%d",isYES); } return 0;}
三、NSFileManager文件访问
- (NSDictionary *)attributesOfItemAtPath:(NSString*)path error:(NSError **)error;
获得path这个文件\文件夹的属性
- (NSArray *)subpathsAtPath:(NSString *)path;
查找给定路径下的所有子路径,返回一个数组, 深度查找,不限于当前层,也会查找package的内容。
- (NSArray *)subpathsOfDirectoryAtPath:(NSString*)path error:(NSError **)error;
获得path的所有子路径(后代路径),上面两个方法功能一样。
- (NSArray *)contentsOfDirectoryAtPath:(NSString*)path error:(NSError **)error;
获得path的当前子路径(path下的所有直接子内容,path必须是一个目录)
- (NSData *)contentsAtPath:(NSString *)path;
获得文件内容
#import<Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { //创建文件对象 NSFileManager *fm = [NSFileManager defaultManager]; NSString *filePath = @"/Users/zhaoxiaohu/Desktop/arr.plist"; NSString *dirPath = @"/Users/zhaoxiaohu/Desktop/a"; //1)如何获取文件的信息(属性) NSDictionary *dict = [fm attributesOfItemAtPath:filePath error:nil]; NSLog(@"%@",dict); NSLog(@"%@,%@",[dict objectForKey:@"NSFileOwnerAccountName"],dict[@"NSFileOwnerAccountName"]); //2)获取指定目录下文件及子目录 //使用递归的方式获取当前目录及子目录下的所有的文件及文件夹 NSArray *subPaths = [fm subpathsAtPath:dirPath]; //subpathsOfDirectoryAtPath 不是使用递归的方式获取的 subPaths = [fm subpathsOfDirectoryAtPath:dirPath error:nil]; NSLog(@"subPaths = %@",subPaths); //3)获取指定目录下的文件及目录信息(不在获取后代路径) subPaths = [fm contentsOfDirectoryAtPath:dirPath error:nil]; NSLog(@"subPaths = %@",subPaths); } return 0;}
四、NSFileManager文件操作
- (BOOL)createDirectoryAtPath:(NSString *)pathwithIntermediateDirectories:(BOOL) createIntermediates attributes:(NSDictionary*)attributes error:(NSError **)error;
只能创建文件夹(createIntermediates为YES代表自动创建中间的文件夹) 注意如果要创建的目录已经存在,则本次创建失败
- (BOOL)copyItemAtPath:(NSString *)srcPathtoPath:(NSString *)dstPath error:(NSError **)error;
拷贝,如果目标目录已经存在同名文件,则无法拷贝
- (BOOL)moveItemAtPath:(NSString *)srcPathtoPath:(NSString *)dstPath error:(NSError **)error;
移动(剪切)
- (BOOL)removeItemAtPath:(NSString *)patherror:(NSError **)error;
删除
- (BOOL)createFileAtPath:(NSString *)pathcontents:(NSData *)data attributes:(NSDictionary *)attr;
创建文件 (NSData是用来存储二进制字节数据的)
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { //创建文件管理对象 NSFileManager *fm = [NSFileManager defaultManager]; //如何创建目录 (路径 :/Users/zhaoxiaohu/Desktop/aaa) NSString *createDirPath = @"/Users/zhaoxiaohu/Desktop/aaa/ccc/bbb/love.txt";// fm createDirectoryAtPath:@"路径"withIntermediateDirectories:YES/NO 创建路径的时候,YES自动创建路径中缺少的目录,NO的不会创建缺少的目录 attributes:属性的字典 error:错误对象 // BOOL isYES = [fmcreateDirectoryAtPath:createDirPath withIntermediateDirectories:YESattributes:nil error:nil];// // if (isYES) {// NSLog(@"成功");// } //如何创建文件 NSString *str = @"每当我错过一个女孩,我就向山上放一块砖,于是就有了长城"; //writeToFile// fm createFileAtPath:@"路径" contents: NSData类型的数据 attributes:文件的属性的字典 //创建NSData? 是一个处理二进制数据的类 //NSString -----> NSData NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding]; BOOL isYes;// // createFileAtPath 创建文件// isYes = [fmcreateFileAtPath:createDirPath contents:data attributes:nil];// NSLog(@"isYes = %d",isYes); //如何copy文件// NSString *targetPath =@"/Users/zhaoxiaohu/Desktop/aaa/ccc/love.txt";// [fm copyItemAtPath:createDirPathtoPath:targetPath error:nil]; NSString *targetPath = @"/Users/zhaoxiaohu/Desktop/aaa/love.txt";// //如何移动文件// [fm moveItemAtPath:createDirPathtoPath:targetPath error:nil]; //如何删除文件 [fm removeItemAtPath:targetPath error:nil]; } return 0;}
- 黑马程序员——Foundation框架——NSFileManager介绍及使用
- 黑马程序员——Foundation框架NSFileManager介绍和用法
- 黑马程序员——Foundation框架——NSFileManager
- 黑马程序员—Foundation框架之NSFileManager、NSNumber与NSDate
- 黑马程序员——Foundation框架——NSArray和NSMutableArray的介绍及使用
- 黑马程序员——Foundation框架NSArray和NSMUtableArray的介绍及使用
- ——黑马程序员——OC中Foundation下NSFileManager的使用
- 黑马程序员——OC语言加强---Foundation框架介绍
- 黑马程序员——Foundation框架——NSNumber类介绍和使用
- 黑马程序员——Foundation框架——NSValue类介绍和使用
- 黑马程序员——Foundation框架——NSDate、NSCalendar类介绍和使用
- 黑马程序员——Foundation框架NSNumber和NSValue的介绍和使用
- 黑马程序员——Foundation框架
- 黑马程序员——Foundation框架
- 黑马程序员—foundation框架总结
- 黑马程序员—Foundation框架之NSString
- 【黑马程序员】OC-Foundation框架—NSMutableString
- 黑马程序员——[Foundation]Foundation框架01
- hdu 4034 Graph(深化最短路floyd)
- intellij code style setting(xml)
- K60 FlexBus总线液晶调试 SSD1289(ID8989)液晶 补充:FlexBus总线驱动成功
- 最终排名
- 操作用邻接表存储的图
- 黑马程序员——Foundation框架——NSFileManager介绍及使用
- 继承中的构造方法的问题
- matlab批处理读取图像文件和批写图像文件
- ORB特征点检测
- C#~构造方法
- oracle的授创建表和视图还有session、查询、触发器 、 seq 等的权限,
- Android性能优化之常见的内存泄漏
- Android SwipeRefreshLayout官方下拉刷新控件介绍(与知乎Android客户端下拉刷新一样!!)
- C/C++学习(三)模板类之间继承