对于NSFileManager,文件或目录是使用文件的路径名唯一标识的。每一个路径名都是一个NSString对象,它可以是相对路径名,也可以是完整路径名。
相对路径名是相对于当前目录的路径名。所以,文件名file.m意味着当前目录中的file.m。斜线字符用于隔开路径中的目录列表。
完整路径名,也称绝对路径名,以斜线“/”开头,斜线实际上就是一个目录,称为 根目录。
这个特殊字符(~)用作用户主目录的缩写。点“ . ”表示当前目录,两点“ .. ”表示父目录
下面是常见的NSFileManager文件方法:
下面是一些基本的文件操作的代码示例:
- #import <Foundation/Foundation.h>
- 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;
- }
#importint 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 阅读( ...) 评论( ...)