OC中文件管理的知识小结及案例20150130.docx_第1页
OC中文件管理的知识小结及案例20150130.docx_第2页
OC中文件管理的知识小结及案例20150130.docx_第3页
OC中文件管理的知识小结及案例20150130.docx_第4页
OC中文件管理的知识小结及案例20150130.docx_第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); /以数组的形式返回指定路径下的每一个元

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论