现在的位置: 首页 > 综合 > 正文

objective-c 使用文件

2013年02月27日 ⁄ 综合 ⁄ 共 1678字 ⁄ 字号 评论关闭
 Foundation 框架请允许你利用文件系统对文件或目录执行基本操作。这些基本操作是由NSFileManager类提供的,

这个类的方法具有如下功能:

  • 创建 一个新文件
  • 从现有文件中读取数据
  • 将数据写入文件中
  • 重新命名文件
  • 删除文件
  • 测试文件是否存在
  • 确定文件的大小及其他属性
  • 复制文件
  • 测试两个文件的内容是否相同

上述多数据操作也可以直接对目录进行。例如,可以创建目录,读取其中的内容,或者删除目录。

 

管理文件和目录

每个文件方法都是对NSFileManager对象的调用,而NSFileManager对象 是通过向类发送一条defaultManager消息创建的,

如下所示:

 

NSFileManager *fm

 ...

fm = [NSFileManager defaultManager];

 

例如,要从当前目录删除名为todolist的文件,首先要创建一个NSFileManager对象(如前面所示),然后调用removeFileAtPath方法,

代码如下:

[fm removeFileAtPath: @"todolist" handler:nil];

可以测试返回结果,以确保文件删除:

if([fm removeFileAtPath:@"todolist" handler:nil] == NO)

{

    NSLog(@"Couldn't remove file todolist");

    return 1;

}

 

下面是一个基本文件操作的例子:

  1. //Basic ifle operations  
  2. //Assumes the existence of a file called "testfile"  
  3. //in ther current working directory  
  4. #import <Foundation/NSObject.h>  
  5. #import <Foundation/NSString.h>  
  6. #import <Foundation/NSFileManager.h>  
  7. #import <Foundation/NSAutoreleasePool.h>  
  8. #import <Foundation/NSDictionary.h>  
  9.   
  10. int main(int argc, const char *argv[])  
  11. {  
  12.     NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];  
  13.     NSString *fName = @"testfile.txt";  
  14.     NSFileManager *fm;  
  15.     NSDictionary *attr;  
  16.   
  17.     //Need to create an instance of the file manager  
  18.     fm = [NSFileManager defaultManager];  
  19.   
  20.     //Let's make sure our test file exists first  
  21.     if([fm fileExistsAtPath: fName] == NO)  
  22.     {  
  23.         NSLog(@"File doesn't exist'");  
  24.         return 1;  
  25.     }  
  26.   
  27.     //Now let's make a copy  
  28.   
  29.     if([fm copyPath: fName toPath: @"newfile.txt" handler:nil] == NO)  
  30.     {  
  31.         NSLog(@"File copy failed");  
  32.         return 2;  
  33.     }  
  34.   
  35.     //Let's test to see if the two files are identical  
  36.     if([fm contentsEqualAtPath: fName andPath: @"newfile.txt"] == NO)  
  37.     {  

抱歉!评论已关闭.