博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
object-c中管理文件和目录:NSFileManager使用方法
阅读量:4636 次
发布时间:2019-06-09

本文共 3388 字,大约阅读时间需要 11 分钟。

对于NSFileManager,文件或目录是使用文件的路径名唯一标识的。每一个路径名都是一个NSString对象,它可以是相对路径名,也可以是完整路径名。

相对路径名是相对于当前目录的路径名。所以,文件名file.m意味着当前目录中的file.m。斜线字符用于隔开路径中的目录列表。

完整路径名,也称绝对路径名,以斜线“/”开头,斜线实际上就是一个目录,称为 根目录。

这个特殊字符(~)用作用户主目录的缩写。点“ . ”表示当前目录,两点“  .. ”表示父目录

    下面是常见的NSFileManager文件方法:

NSFileManager处理文件的方法

下面是一些基本的文件操作的代码示例:

 

[plain]
  1. #import <Foundation/Foundation.h>  
  2.   
  3. int main(int argc, const char * argv[])  
  4. {  
  5.   
  6.     @autoreleasepool {  
  7.           
  8.         NSString *fName = @"testfile.txt";  
  9.         NSFileManager *fm ;  
  10.         NSDictionary * attr;  
  11.           
  12.         //创建文件管理对象  
  13.         fm = [NSFileManager defaultManager];  
  14.           
  15.         //判断文件是否存在  
  16.         if([fm fileExistsAtPath:fName] == NO)  
  17.         {  
  18.             NSLog(@"File doesn't exist!");  
  19.             return 1;  
  20.         }  
  21.               
  22.         //将 testfile.txt 文件拷贝出一个新的文件 newfile.txt  
  23.         if([fm copyPath:fName toPath:@"newfile.txt" handler:nil] == NO)  
  24.         {  
  25.             NSLog(@"File copy failed!");  
  26.             return 2;  
  27.         }  
  28.           
  29.         //判断两个文件内容是否相等  
  30.         if([fm contentsEqualAtPath:fName andPath:@"newfile.txt"] == NO)  
  31.         {  
  32.             NSLog(@"File are not equal!");  
  33.             return 3;  
  34.         }  
  35.                   
  36.         //将文件 newfile.txt 重命名为 newfile2.txt  
  37.         if([fm movePath:@"newfile.txt" toPath:@"newfile2.txt" handler:nil] == NO)  
  38.         {  
  39.             NSLog(@"File rename failed!");  
  40.             return 4;  
  41.         }  
  42.   
  43.         //获取文件 newfile2.txt 的大小,并输出  
  44.         if((attr = [fm fileAttributesAtPath:@"newfile2.txt" traverseLink:NO]) == nil)  
  45.         {  
  46.             NSLog(@"Couldn't get file attributes!");  
  47.             return 5;  
  48.         }  
  49.           
  50.         NSLog(@"File size is %i bytes",[[attr objectForKey:NSFileSize] intValue]);  
  51.           
  52.         //移出原始文件testfile.txt  
  53.         if([fm removeFileAtPath:fName handler:nil] == NO)  
  54.         {  
  55.             NSLog(@"File removal failed!");  
  56.             return 6;  
  57.         }  
  58.           
  59.         NSLog(@"All operations were successful!");  
  60.         //输出文件内容  
  61.         NSLog(@"%@",[NSString stringWithContentsOfFile:@"newfile2.txt" encoding:NSUTF8StringEncoding error:nil]);  
  62.           
  63.     }  
  64.     return 0;  
  65. }  
#import 
int main(int argc, const char * argv[]){ @autoreleasepool { NSString *fName = @"testfile.txt"; NSFileManager *fm ; NSDictionary * attr; //创建文件管理对象 fm = [NSFileManager defaultManager]; //判断文件是否存在 if([fm fileExistsAtPath:fName] == NO) { NSLog(@"File doesn't exist!"); return 1; } //将 testfile.txt 文件拷贝出一个新的文件 newfile.txt if([fm copyPath:fName toPath:@"newfile.txt" handler:nil] == NO) { NSLog(@"File copy failed!"); return 2; } //判断两个文件内容是否相等 if([fm contentsEqualAtPath:fName andPath:@"newfile.txt"] == NO) { NSLog(@"File are not equal!"); return 3; } //将文件 newfile.txt 重命名为 newfile2.txt if([fm movePath:@"newfile.txt" toPath:@"newfile2.txt" handler:nil] == NO) { NSLog(@"File rename failed!"); return 4; } //获取文件 newfile2.txt 的大小,并输出 if((attr = [fm fileAttributesAtPath:@"newfile2.txt" traverseLink:NO]) == nil) { NSLog(@"Couldn't get file attributes!"); return 5; } NSLog(@"File size is %i bytes",[[attr objectForKey:NSFileSize] intValue]); //移出原始文件testfile.txt if([fm removeFileAtPath:fName handler:nil] == NO) { NSLog(@"File removal failed!"); return 6; } NSLog(@"All operations were successful!"); //输出文件内容 NSLog(@"%@",[NSString stringWithContentsOfFile:@"newfile2.txt" encoding:NSUTF8StringEncoding error:nil]); } return 0;}

posted on
2013-03-09 00:13 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/jiangyuxuan/archive/2013/03/09/2950988.html

你可能感兴趣的文章
popStar手机游戏机机对战程序
查看>>
Java Web项目结构
查看>>
lambda表达式树
查看>>
OpenCV YUV 与 RGB的互转(草稿)
查看>>
二次注入原理及防御
查看>>
会话记住已登录功能
查看>>
Linux内核分析——可执行程序的装载
查看>>
儿子和女儿——解释器和编译器的区别与联系
查看>>
第一阶段冲刺3
查看>>
父类引用指向子类对象
查看>>
网页如何实现下载功能
查看>>
IT男专用表白程序
查看>>
读《大道至简》第六章感想
查看>>
ef linq 中判断实体中是否包含某集合
查看>>
章三 链表
查看>>
Solution for Concurrent number of AOS' for this application exceeds the licensed number
查看>>
CSE 3100 Systems Programming
查看>>
IntelliJ IDEA 的Project structure说明
查看>>
Java Security(JCE基本概念)
查看>>
Linux Supervisor的安装与使用入门
查看>>