OC中文件管理的知识小结及案例20150130.docx

上传人:wux****ua 文档编号:9628294 上传时间:2020-04-06 格式:DOCX 页数:5 大小:35.66KB
返回 下载 相关 举报
OC中文件管理的知识小结及案例20150130.docx_第1页
第1页 / 共5页
OC中文件管理的知识小结及案例20150130.docx_第2页
第2页 / 共5页
OC中文件管理的知识小结及案例20150130.docx_第3页
第3页 / 共5页
点击查看更多>>
资源描述
OC中文件管理的知识小结及案例/* - 使用NSFileManager类可以用来标识一个文件的目录,这个路径名是一个NSString - 相对路径名是一种相对于当前目录的路径 完整路径名,也称为绝对路径名,以斜线开始,斜线实际上就是一个目录,称为根目录 - NSCoding协议:类的声明中有NSCoding协议,必须实现该协议的编码和解码这两种实例方法。此功能提供了基础的归档(对象和其它结构存储在磁盘)和解档(对象都复制到不同的地址空间)功能 - 若将对象存入文件,该类必须遵循NSCoding协议,实现两个方法: /编码一个对象 -(void)encodeWithCoder:(NSCoder*)aCoder; /解码并初始化一个(来自磁盘文件的)对象 -(id)initWithCoder:(NSCoder*)aDecoder; * encoderWithCoder : 从coder中读取数据,保存到相应的文件中,即反序列化数据 * initWithCoder : 读取文件中内容,并把这些数据写到实例中去,序列化数据。 - NSCoder是将支持NSCodeing协议的对象状态序列化成二进制的NSData,这样data就能存到硬盘上。那么,再次启动的时候如果硬盘上有这个data就可以通过反向decoder来获得上次保存的状态 - NSCoder是一个抽象类,抽象类不能被实例化,只能提供一些想让子类继承的方法。 * NSKeyedArchier : 把对象写到二进制流中去 * NSKeyedUnarchiver : 从二进制流读取对象 - /把磁盘文件的数据,写入到缓冲区NSData NSData* data = NSData dataWithContentsOfFile:/file.txt; - /把缓冲区的数据,写入到文件 data2 writeToFile:/file.txt atomically:YES; /文件不存在就创建一个 - NSFileManager : 文件管理类,提供了对文件和目录的基本操作 - 每个文件是通过发送NSFileManagerle类创建的对象调用defaultManager的方法获取的 - /创建一个NSFileManger对象 NSFileManger* fm = NSFileManager defaultMan; - attributesOfItemAtPath:error : 返回一个字典属性,包含了文件的各种属性 - NSError* err = nil; NSDictionary* attr = fm attributesOfItemAtPath:filepatherror:&err; - 从属性字典里取出一个特定属性,文件大小 int file桃姐 attr objectForKey:NSFileSize intValue; - contentsAtPath : 需要一个路径并读取指定文件的内容到一个存储区域,结果是返回存储区域的对象或如果读取失败返回nil NSData* data = fm contentsAtPath:/Users/sxwt22/Desktop/file.txt; AddressCard* card = NSKeyedUnarchiver unarchiveObjectWithData:data; - createFileAtPath:contents:attributes : 创建一个文件与指定的属性(默认属性参数nil),然后写入NSData对象的内容到指定文件。 - 显示目录的两个方法: enmeratorAtPath : 递归枚举,还枚举子目录的内容 directoryContentsAtPath : 非递归枚举,只枚举当前目录的内容 * nil默认权限 fm createFileAtPate:/Users/sxwt22/Desktop/file.txt contents:data attributes:nil; - NSTemporaryDirctory : 返回一个临时文件夹的路径 - NSHomeDirctory : 返回用户的主目录 - NSHomeDirctoryForUser : 返回指定用户的主目录 - lastPathComponent : 返回的是最后路径下的文件夹 - stringByAppendingPathComponent : 方法是在该路径下追加一个路径(不加/) - currentDirectory : 该方法是与stringByAppendingPathComponent方法相结合的,可以在当前目录创造出完整的一个文件到路径。 - pathExtension给出了所提供的路径下文件后缀,如果文件没有延长,简单的方法将返回一个空字符串 - pathComponents : 方法以数组的形式返回一个指定路径下的每一个部分。*/#import AddressCard.h#import int main(int argc, const char * argv) autoreleasepool /NSDirectoryEnumerator(字典枚举数)对象通过enumeratorAtPath : 方法,得到一个被返回的路径,你会返回一个到下一个目录中的文件,这是列举,当没有文件被列举的时候,将返回一个nil /一旦使用directoryConentsAtPath : 方法,被指定的路径就会被列举,这些文件的列表还是在数组中的。 NSFileManager* fm = NSFileManager defaultManager; /创建一个fm对象 NSDirectoryEnumerator* dirEnum = fm enumeratorAtPath:/Users/sxwt22/Desktop/Softs; NSMutableArray* subpath; while (subpath=dirEnum nextObject)!=nil) NSLog(%,subpath); /返回所有该路径下的文件 / AddressCard* card = AddressCard alloc initWithName:HAO andY:good091231;/ NSKeyedArchiver archiveRootObject:card toFile:/Users/sxwt22/Desktop/HAO.txt; /将路径为“Users/sxwt22/Desktop”下的HAO.txt文件内容存到缓存中 NSData* data = NSData dataWithContentsOfFile:/Users/sxwt22/Desktop/HAO.txt; /将缓存中的内容写入到“file.txt”中 data writeToFile:/Users/sxwt22/Desktop/file.txt atomically:YES; /从“file.txt”文件中读了内容 AddressCard* card = NSKeyedUnarchiver unarchiveObjectWithFile:/Users/sxwt22/Desktop/file.txt; /显示 NSLog(card = %,card); /创建一个文件file2.txt,将data中的数据写入到新建的文件中 fm createFileAtPath:/Users/sxwt22/Desktop/file2.txt contents:data attributes:nil; /将“file2.txt”中的内容解出 AddressCard* card2 = NSKeyedUnarchiver unarchiveObjectWithFile:/Users/sxwt22/Desktop/file2.txt; /输出“file2.txt”中的内容 NSLog(card2 = %,card2); NSError* err = nil; /移动文件file2.txt到file3.txt中去 fm moveItemAtPath:/Users/sxwt22/Desktop/file2.txt toPath:/Users/sxwt22/Desktop/file3.txt error:&err; AddressCard* card3 = NSKeyedUnarchiver unarchiveObjectWithFile:/Users/sxwt22/Desktop/file3.txt; NSLog(card3 = %,card3); /测试file3.txt是否存在 if (fm fileExistsAtPath:/Users/sxwt22/Desktop/file3.txt) NSLog(This file is exit!); else NSLog(Not exit!); /* /attributesOfItemAtPath : 获得指定目录下的文件中的属性(通过键值对获取) NSDictionary* attr = fm attributesOfItemAtPath:/Users/sxwt22/Desktop/HAO.txt error:&err; NSInteger filesize = attr objectForKey:NSFileSize integerValue; /输出文件的大小 NSLog(HAO.txt size = %d,filesize); /返回字典路径 NSLog(%,fm currentDirectoryPath); /把/Users/sxwt22/Desktop/Softs路径下的内容提取出来,保存在dirEnum中 NSDirectoryEnumerator* dirEnum1 = fm enumeratorAtPath:/Users/sxwt22/Desktop/Softs; NSString* subpath1; NSMutableArray* mSubPath = NSMutableArray arrayWithCapacity:10; while (subpath=dirEnum1 nextObject)!=nil) mSubPath addObject:subpath; NSLog(EnumeratorAtPath:%,mSubPath); /把/Users/sxwt22/Desktop/Softs路径下的内容提取出来,不递归的保存在arr中 NSArray* arr = fm directoryContentsAtPath:/Users/sxwt22/Desktop/Softs; NSLog(DirectoryContentsAtPath:%,arr); /以数组的形式返回字典中所指向的内容 NSArray* array = fm contentsOfDirectoryAtPath:/Users/sxwt22/Desktop/Softs error:&err; NSLog(ContentsOfDirctoryAtPath:%,array); /* /返回一个临时的目录 NSLog(TemporaryDirectory:%,NSTemporaryDirectory(); /返回用户的主目录 NSLog(HomeDirectory:%,NSHomeDirectory(); NSString* path = /Users/sxwt22/Desktop/HAO.txt; NSLog(%,path); /返回最后目录下的文件 NSLog(LastPathComponent:%,path lastPathComponent); NSLog(%,path pathExtension); /以数组的形式返回指定路径下的每一个元素 NSArray* array2 = path pathComponents; NSLog(%,array2); /返回标准的用户的主目录 NSLog(StringByStandardizingPath:%,/. stringByStandardizingPath); /返回用户的主目录以及后缀字符 NSLog(StringByExpandingTildeInPath:%,/Users/sxwt22/Desktop/HAO.txt stringByExpandingTildeInPath); return 0;
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 工作总结


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!