黑马程序员—Foundation框架之NSFileManager、NSNumber与NSDate
来源:互联网 发布:java初始化spring容器 编辑:程序博客网 时间:2024/05/17 18:41
一、NSFileManager
1、NSFileManager是用来管理文件系统的
2、它可以用来进行常见的文件\文件夹操作(拷贝、剪切、创建等)
3、NSFileManager使用了单例模式singleton
4、使用defaultManager方法可以获得那个单例对象,[NSFileManager defaultManager]
5、NSFileManager的常见判断
1)- (BOOL)fileExistsAtPath:(NSString *)path:path这个文件或文件夹是否存在
2)- (BOOL)fileExistsAtPath:(NSString *)path isDirectory:(BOOL *)isDirectory:path这个文件或文件夹是否存在, isDirectory代表是否为文件夹
3)- (BOOL)isReadableFileAtPath:(NSString *)path:path这个文件或文件夹是否可读
4)- (BOOL)isWritableFileAtPath:(NSString *)path:path这个文件或文件夹是否可写
5)- (BOOL)isDeletableFileAtPath:(NSString *)path:path这个文件或文件夹是否可删除
#import <Foundation/Foundation.h>int main(){ 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;}
6、NSFileManager的文件访问
1)- (NSDictionary *)attributesOfItemAtPath:(NSString *)path error:(NSError **)error:获得path这个文件\文件夹的属性
2)- (NSArray *)subpathsAtPath:(NSString *)path
3)- (NSArray *)subpathsOfDirectoryAtPath:(NSString *)path error:(NSError **)error:获得path的所有子路径(后代路径),上面两个方法功能一样。
4)- (NSArray *)contentsOfDirectoryAtPath:(NSString *)path error:(NSError **)error:获得path的当前子路径(path下的所有直接子内容,path必须是一个目录)
5)- (NSData *)contentsAtPath:(NSString *)path:获得文件内容
#import <Foundation/Foundation.h>int main(){ //创建文件对象 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;}7、NSFileManager的文件操作
1)- (BOOL)copyItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error:拷贝
2)- (BOOL)moveItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error:移动(剪切)
3)- (BOOL)removeItemAtPath:(NSString *)path error:(NSError **)error:删除
4)- (BOOL)createDirectoryAtPath:(NSString *)path withIntermediateDirectories:(BOOL)createIntermediates attributes:(NSDictionary *)attributes error:(NSError **)error:只能创建文件夹(createIntermediates为YES代表自动创建中间的文件夹)
5)- (BOOL)createFileAtPath:(NSString *)path contents:(NSData *)data attributes:(NSDictionary *)attr:创建文件(NSData是用来存储二进制字节数据的)
二、NSNumber
1、把基本数字类型包装成OC对象
1)NSArray\NSDictionary中只能存放OC对象, 不能存放int\float\double等基本数据类
2)如果真想把基本数据(比如int)放进数组或字典中, 需要先将基本数据类型包装成OC对象
2、NSNumber的常用方法
1)- (char)charValue;
2)- (int)intValue;
3)- (long)longValue;
4)- (double)doubleValue;
5)- (BOOL)boolValue;
6)- (NSString *)stringValue;
7)- (NSComparisonResult)compare:(NSNumber *)otherNumber;
8)- (BOOL)isEqualToNumber:(NSNumber *)number;
#import <Foundation/Foundation.h>int main(){ int a = 10; int x = 100; float f1 = 3.23f; double d1 = 2.34; // numberWithInt 把int 转换为 NSNumber NSNumber *intObj = [NSNumber numberWithInt:a]; NSMutableArray *array = [NSMutableArray arrayWithObjects:intObj, nil]; // float ---> NSNumber NSNumber *floatObj = [NSNumber numberWithFloat:f1]; [array addObject:floatObj]; // double ---> NSNumber NSNumber *dObj = [NSNumber numberWithDouble:d1]; //把对象添加到数组中 [array addObject:dObj]; //@(变量名) ---> 把 x 转换为NSNumber对象 [array addObject:@(x)]; //@数值,把数值包装成对象 [array addObject:@18]; NSLog(@"array = %@",array); //1)取出数组的元素 //2)把数组元素转换为基本数据类型的数据 NSNumber *n1 = array[0]; int a1 = [n1 intValue]; //获取对象的整形值 NSNumber *n2 = array[1]; float f2 = [n2 floatValue]; a1 = [array[0] intValue]+[array[1] floatValue]; NSLog(@"%d",a1); return 0;}注意:
1)NSNumber是NSValue的子类, 但NSNumber只能包装数字类型
2)NSValue可以包装任意值
3)可以用NSValue将结构体包装后, 加入NSArray\NSDictionary中
三、NSDate
1、NSDate可以用来表示时间, 可以进行一些常见的日期\时间处理
2、一个NSDate对象就代表一个时间
3、[NSDate date]返回的就是当前时间
#import <Foundation/Foundation.h>int main(){ NSDate *d1 = [NSDate date]; NSLog(@"%@",d1); //<span style="font-family: Arial, Helvetica, sans-serif;">2015-10-10 12:39:46 +0000</span> //格式化日期 //NSDateFormatter 日期格式化 NSDateFormatter *formatter = [NSDateFormatter new]; //设置日期的显示格式的 formatter.dateFormat = @"yyyy年MM月dd日 HH:mm:ss"; formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss"; //格式化日期 NSString *dateStr = [formatter stringFromDate:d1]; NSLog(@"%@",dateStr); return 0;}注意:
1)获取的是0时区时间,要想得到北京时间还要当前时间+8小时
2)设置日期显示格式:yyyy 表示四位的年份, MM 表示2位的月份,dd 表示2位的天数,HH 表示24小时制得小数 hh - 12小时值, mm 表示2位的分钟数, ss 表示2位的秒数
- 黑马程序员—Foundation框架之NSFileManager、NSNumber与NSDate
- 黑马程序员——foundation框架之NSNumber,NSDate,NSValue
- 黑马程序员——Foundation学习之NSNumber\NSValue\NSNull\NSFileManager\NSDate\NSData
- 黑马程序员-[OC]学习之旅-NSFileManager、NSNumber、NSDate
- 黑马程序员-[OC语言] 第八篇:foundation框架之 NSFileManager、NSDate概述
- 黑马程序员-OC学习笔记之Foundation框架NSNumber、NSValue和NSDate
- 黑马程序员-OC学习笔记之Foundation框架NSNumber、NSValue和NSDate
- 黑马程序员——Foundation框架入门:NSNumber,NSValue和NSDate
- 黑马程序员—— Foundation框架NSArray、NSSet、NSDictionary、NSNumber、NSDate、NSValue
- 黑马程序员——Foundation---NSSet,NSDictionary,NSNumber,NSDate,NSValue
- Foundation框架--- NSDate、NSNumber
- 黑马程序员--OC自学笔记---10Foundation、NSFileManager、iOS沙盒、OC结构体、NSNumber、NSValue、NSDate、copy、单例模式
- Foundation框架—NSNumber、NSValue、NSDate
- 黑马程序员- IOS学习笔记-Foundation框架集合类、NSNumber、NSDate
- 黑马程序员-OC学习笔记-----Foundation框架(集合、NSNumber、NSDate)
- 黑马程序员---Foundation常用类(NSNumber、NSValue、NSDate)
- 黑马程序员——Foundation框架——NSFileManager
- 黑马程序员——Foundation框架NSFileManager介绍和用法
- MobileCoreServices--LSApplicationWorkspace.h
- 数据适配器 BaseAdapter
- PowerShell 函数(Function)
- opencv在qt中的配置
- pingIP告警
- 黑马程序员—Foundation框架之NSFileManager、NSNumber与NSDate
- tcl/tk实例详解——catch和error
- 第6周项目5-后缀表达式
- C++类复制构造函数
- 使用jQuery AJAX读取二进制数据
- Fetching Android SDK component information
- 10月17日 黑客马拉松 — 用MeteorJS开发全栈应用
- Matlab_Marr小波尺度变换图
- 科研有方——英文论写作