Objective C中文件类的各种操作方法
转自:http://blog.csdn.net/newjerryj/article/details/6263134
   本文来讲述 文件类的各种操作方法,示例如下:
NSString *fName=@"testfile.m"; NSFileManager *fm=NULL; NSDictionary *dict=NULL; fm=[NSFileManager defaultManager]; if ([fm fileExistsAtPath:fName]==NO) { NSLog(@"file not exist!"); return 1; } if ([fm copyPath:fName toPath:@"newfile" handler:nil]==NO) { NSLog(@"copy failed!"); } if ([fm movePath:@"newfile" toPath:@"newfolder" handler:nil]==NO) { NSLog(@"move failed"); } if ((dict=[fm fileAttributesAtPath:@"newfolder" traverseLink:NO])==nil) { NSLog(@"get file attributes failed"); } NSLog(@"file size is %i bytes",[[dict objectForKey:NSFileSize] intValue]); if ([fm removeFileAtPath:@"newfolder" handler:nil]==YES) { NSLog(@"remove successful!"); }
NSData类的使用方法
NSData *fileData=NULL; fm=[NSFileManager defaultManager]; fileData=[fm contentsAtPath:@"testfile.m"]; if (fileData==nil) { NSLog(@"read file failed!"); } if ([fm createFileAtPath:@"file2" contents:fileData attributes:nil]==YES) { NSLog(@"create file success!"); }
对路径的操作方法:
NSString *fName=@"testDir"; NSFileManager *fm=NULL; //NSDictionary *dict=NULL; NSString *path=NULL; fm=[NSFileManager defaultManager]; path=[fm currentDirectoryPath]; NSLog(@"currentDir is: %@",path); //create a new directory [fm createDirectoryAtPath:fName attributes:nil]; //rename the directory [fm movePath:fName toPath:@"newDir" handler:nil]; //change currentdirectory [fm changeCurrentDirectoryPath:@"newDir"]; path=[fm currentDirectoryPath]; NSLog(@"currentDir is: %@",path);
枚举某个目录的所有内容:
[cpp] view plaincopy NSFileManager *fm=NULL; NSDirectoryEnumerator *dirEnum=NULL; NSArray *dirArray=NULL; NSString *path=NULL; fm=[NSFileManager defaultManager]; path=[fm currentDirectoryPath]; dirEnum=[fm enumeratorAtPath:path]; while ((path=[dirEnum nextObject])!=nil) { dirArray=[fm directoryContentsAtPath:[fm currentDirectoryPath]]; } NSLog(@"%@",dirArray);
NSFileHandle的使用示例:
NSFileHandle *inFile, *outFile; NSData *buffer; inFile=[NSFileHandle fileHandleForReadingAtPath:@"testfile.m"]; [[NSFileManager defaultManager]createFileAtPath:@"newfile1" contents:nil attributes:nil]; outFile=[NSFileHandle fileHandleForWritingAtPath:@"newfile1"]; [outFile truncateFileAtOffset:0]; buffer=[inFile readDataToEndOfFile]; [outFile writeData:buffer]; [inFile closeFile]; [outFile closeFile];