NSFileManager文件操作

来源:互联网 发布:jdk 7u17 windows x86 编辑:程序博客网 时间:2024/05/16 08:29
  1. -(void) write  
  2. {  
  3.     //创建文件管理器  
  4.     NSFileManager *fileManager = [NSFileManager defaultManager];  
  5.       
  6.     //获取路径  
  7.     //参数NSDocumentDirectory要获取那种路径  
  8.     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
  9.     NSString *documentsDirectory = [paths objectAtIndex:0];//去处需要的路径     
  10.       
  11.     //更改到待操作的目录下  
  12.     [fileManager changeCurrentDirectoryPath:[documentsDirectory stringByExpandingTildeInPath]];  
  13.       
  14.     //[fileManager removeItemAtPath:@"config" error:nil];//移除本文件管理器下的该项  
  15.     NSString *path = [documentsDirectory stringByAppendingPathComponent:@"config"];//获取文件路径  
  16.     //判断文件是否存在    
  17.     if (![[NSFileManager defaultManager] fileExistsAtPath:path]) {//如果文件不存在则创建  
  18.         //创建文件fileName文件名称,contents文件的内容,如果开始没有内容可以设置为nil,attributes文件的属性,初始为nil  
  19.           
  20.         NSData *d_data=[[NSMutableDictionary alloc] init];  
  21.           
  22.         [d_data setValue:@"" forKey:@"userid"];//手机号  
  23.         [d_data setValue:@"" forKey:@"pwd"];//密码  
  24.         [d_data setValue:@"0" forKey:@"backup"];//备份类型  
  25.           
  26.         [fileManager createFileAtPath:path contents:d_data attributes:nil];  
  27.           
  28.         NSString *str = @"a test file name";  
  29.         BOOL succeed = [str writeToFile: [documentsDirectory stringByAppendingPathComponent:@"test.xml"]  
  30.                              atomically: YES   
  31.                                encoding: NSUTF8StringEncoding   
  32.                                   error: nil];  
  33.         NSLog( @"succeed is %d", succeed );        // yes -> 写成功       no->写失败  
  34.           
  35.         [d_data release];  
  36.     }  
  37.       
  38.       
  39.       
  40.       
  41. }  
  42.   
  43. - (void)read  
  44. {  
  45.     //读取数据  
  46.     NSFileHandle *file = [NSFileHandle fileHandleForReadingAtPath:  @"test.xml"];  
  47.     NSData *data = [file readDataToEndOfFile];//得到xml文件                               //读取到NSDate中  
  48.       
  49.     NSString* aStr;    
  50.     aStr = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];         //转换为NSString  
  51.     NSLog( @"aStr is %@", aStr );  
  52.       
  53.     [file closeFile];  
  54.           
  55.   

  1. }  

...................

  1. //对于错误信息  
  2. NSError *error;  
  3.   
  4. // 创建文件管理器  
  5. NSFileManager *fileMgr = [NSFileManagerdefaultManager];  
  6.   
  7. //指向Documents目录  
  8. NSString *documentsDirectory= [NSHomeDirectory()stringByAppendingPathComponent:@"Documents"];  
  9.   
  10. //创建一个目录  
  11. [[NSFileManager defaultManager] createDirectoryAtPath: [NSString stringWithFormat:@"%@/myFolder", NSHomeDirectory()] attributes:nil];  
  12.   
  13. 创建一个文件现在我们已经有了文件目录,我们就能使用这个路径在沙盒中创建一个新文件并编写一段代码:  
  14. // File we want to create in the documents directory  
  15. 我们想要创建的文件将会出现在文件目录中  
  16. // Result is: /Documents/file1.txt        结果为:/Documents/file1.txt  
  17.   
  18. NSString *filePath= [documentsDirectorystringByAppendingPathComponent:@"file1.txt"];  
  19. //需要写入的字符串  
  20. NSString *str= @"iPhoneDeveloper Tips\nhttp://iPhoneDevelopTips,com";  
  21.   
  22. //写入文件[str writeToFile:filePath atomically:YESencoding:NSUTF8StringEncoding error:&error];  
  23.   
  24. //显示文件目录的内容  
  25. NSLog(@"Documentsdirectory: %@",[fileMgr contentsOfDirectoryAtPath:documentsDirectoryerror:&error]);  
  26.   
  27.   
  28. NSFileManager *fileManager = [NSFileManager defaultManager];  
  29.   
  30. //在这里获取应用程序Documents文件夹里的文件及文件夹列表  
  31. NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
  32. NSString *documentDir = [documentPaths objectAtIndex:0];  
  33. NSError *error = nil;  
  34. NSArray *fileList = [[NSArray alloc] init];  
  35.   
  36. //fileList便是包含有该文件夹下所有文件的文件名及文件夹名的数组  
  37. fileList = [fileManager contentsOfDirectoryAtPath:documentDir error:&error];  
  38.   
  39. NSMutableArray *dirArray = [[NSMutableArray alloc] init];  
  40. BOOL isDir = NO;  
  41. //在上面那段程序中获得的fileList中列出文件夹名  
  42. for (NSString *file in fileList)  
  43.  {  
  44. NSString *path = [documentDir stringByAppendingPathComponent:file];  
  45. [fileManager fileExistsAtPath:path isDirectory:(&isDir)];  
  46. if (isDir)  
  47.  {  
  48. [dirArray addObject:file];  
  49. }  
  50.   
  51. isDir = NO;  
  52.   
  53. }  
  54. NSLog(@"Every Thing in the dir:%@",fileList);  
  55. NSLog(@"All folders:%@",dirArray);  

0 0