六十四、基础框架(二十二)文件操作-基本文件操作

来源:互联网 发布:linux 系统添加wifi 编辑:程序博客网 时间:2024/05/30 23:39

如果  要对  任何文件  进行操作,都要  先  创建  一个NSFileManager类型的物件,也就是  文件管理器物件,并且  对  其  采取  适用于这类物件的措施。要创建  NSFileManager类型的物件,需要  向NSFileManager这类物件  发送  defaultManager这条消息,就像  这样:

这里  创建了  一个NSFileManager类型的物件,叫做  myFileManager。如果  要  从当前目录  删除  一个叫todolist的文件,那么  就要对  myFileManager这个物件  采取  removeFileAtPath:handler:这项措施:

你  可以检查removeFileAtPath:handler:这项措施所产生的结果  以确保  操作的成功:

如果  removeFileAtPath:handler:这项措施产生的结果  为  NO,则  显示出  相应的信息  以表示  操作失败。

进行  文件操作时,通过包含文件属性的辞典物件  你  可以设定  你所创建的文件的权限  或者  获取、改变  文件的信息。fileAttributesAtPath:traverseLink:这项措施  会将  文件属性  以辞典物件的形式  传递给  你。

下面的程序  示范了  一些基本的文件操作。在运行  这个程序之前,我  在可执行文件所在的目录  已经创建了  一个叫myFile的文本文件,这个文件  包含了  一行文本。

运行  这个程序,可以得到  这样的结果:

这个程序  首先  检查了  myFile这个文件  是否存在。如果  myFile这个文件  存在,则将  myFile这个文件  复制  一份,并且  命名为  myAnotherFile。然后  再  检查  文件myFile  和  文件myAnotherFile的内容  是否一致。有经验的UNIX用户  应该会注意到  在采取  copyPath:toPath:  或者  movePath:toPath:这样的措施时,你  不能只说明  目标目录,而  要  精确地  说明  目标文件的名称。

movePath:toPath:这项措施  可以将  文件  从一个目录  移动  到另外一个目录,也可以移动  整个目录。如果  这项措施的两个参数所指的文件  位于  同一个目录,那么  这项措施的作用  就是  为这个文件  重新  命名。

在进行  复制、重命名、移动操作时,目标文件  不能是  已经存在的文件。如果  目标文件  已经存在,那么  操作  就会失败。

在这个程序中  我  对  myFileManager这个物件  采取了  fileAttributesAtPath:traverseLink:这项措施,fileAttributesAtPath:traverseLink:这项措施  会将  其参数中的文件的属性  以辞典的形式  存储  在变量attributes当中。在attributes这个辞典物件当中,文件长度所对应的关键字  是  NSFileSize。所以  只要对  attributes这个辞典物件  采取  objectForKey:这项措施,并且  用  NSFileSize  充当  参数,就可以读取出  文件的长度。最后  还要采取  intValue这项措施  将  文件的长度  转换成  整数类型。

然后  我  对  myFileManager这个物件  采取了  removeFileAtPath:handler:这项措施  将  原始文件myFile  删除。

最后  我  向NSString这类物件  发送了  stringWithContentsOfFile:这条消息。NSString这类物件  会利用  stringWithContentsFile:这条消息中参数所指定的文件中的内容  创建  一个NSString类型的字符串物件。

在这个程序当中  如果  有  任何一项操作  失败,那么  return语句  就会得以执行,从而  中止  程序,并且  将  相应的非零的整数值  显示  在终端上。根据惯例,非零的整数值  用来代表  程序错误。不同的值  用来代表  不同类型的错误。


原创粉丝点击