标签:
//file 文件操作 NSFileManager 常见的NSFileManager文件的方法: -(BOOL)contentsAtPath:path 从文件中读取数据 -(BOOL)createFileAtPath:path contents:(BOOL)data attributes:attr 向一个文件写入数据 -(BOOL)removeFileAtPath: path handler: handler 删除一个文件 -(BOOL)movePath: from toPath: to handler: handler 重命名或移动一个文件(to可能已经存在) -(BOOL)copyPath:from toPath:to handler: handler 复制文件 (to不能存在) -(BOOL)contentsEqualAtPath:path1 andPath:path2 比较两个文件的内容 -(BOOL)fileExistsAtPath:path 测试文件是否存在 -(BOOL)isReadablefileAtPath:path 测试文件是否存在,且是否能执行读操作 -(BOOL)isWritablefileAtPath:path 测试文件是否存在,且是否能执行写操作 -(NSDictionary *)fileAttributesAtPath:path traverseLink:(BOOL)flag 获取文件的属性 -(BOOL)changeFileAttributes:attr atPath:path 更改文件的属性 NSFileManager对象的创建 : NSFileManager *fm; fm = [NSFileManager defaultManager]; NSDictionary *attr =[fm fileAttributesAtPath: fname traverseLink: NO] ; //文件属性 NSLog(@"file size is:%i bytes ",[[attr objectForKey:NSFileSize] intValue]); NSData *data =[fm contentsAtPath:@"filename"];//文件内容 常见的NSFileManager目录的方法: -(NSString *)currentDirectoryPath 获取当前目录 -(BOOL)changeCurrentDirectoryPath:path 更改当前目录 -(BOOL)copyPath:from toPath:to handler:handler 复制目录结构,to不能已经存在 -(BOOL)createDirectoryAtPath:path attributes:attr 创建目录 -(BOOL)fileExistsAtPath:path isDirectory:(BOOL *)flag 测试文件是否为目录 (flag存储结构yes/no) -(NSArray *)contentsOfDirectoryAtPath:path 列出目录的内容 -(NSDirectoryEnumerator *)enumeratorAtPath:path 枚举目录的内容 -(BOOL)removeFileAtPath:path handler:handler 删除空目录 -(BOOL)movePath:from toPath:to handler:handler 重命名或移动一个目录,to不能是已经存在的 path= [fm currentDirectoryPath] ; NSArray *dirarray; NSDirectoryEnumerator *direnu; direnu = [fm enumeratorAtPath:path]; NSLog(@"contents of %@\n",path); BOOL flag; while((path = [direnu nextObject])!=nil) { NSLog(@"%@ ",path); [fm fileExistsAtPath:path isDirectory:&flag]; if(flag == YES) [direnu skipDescendents]; //跳过子目录 } path= [fm currentDirectoryPath] ; dirarray = [fm contentsOfDirectoryAtPath:path]; NSLog(@"%@ ",dirarray); 常用路径工具函数 NSString * NSUserName(); 返回当前用户的登录名 NSString * NSFullUserName(); 返回当前用户的完整用户名 NSString * NSHomeDirectory(); 返回当前用户主目录的路径 NSString * NSHomeDirectoryForUser(); 返回用户user的主目录 NSString * NSTemporaryDirectory(); 返回可用于创建临时文件的路径目录 常用路径工具方法 -(NSString *) pathWithComponents:components 根据components中元素构造有效路径 -(NSArray *)pathComponents 析构路径,获取路径的各个部分 -(NSString *)lastPathComponent 提取路径的最后一个组成部分 -(NSString *)pathExtension 路径扩展名 -(NSString *)stringByAppendingPathComponent:path 将path添加到现有路径末尾 -(NSString *)stringByAppendingPathExtension:ext 将拓展名添加的路径最后一个组成部分 -(NSString *)stringByDeletingPathComponent 删除路径的最后一个部分 -(NSString *)stringByDeletingPathExtension 删除路径的最后一个部分 的扩展名 -(NSString *)stringByExpandingTildeInPath 将路径中的代字符扩展成用户主目录(~)或指定用户主目录(~user) -(NSString *)stringByResolvingSymlinksInPath 尝试解析路径中的符号链接 -(NSString *)stringByStandardizingPath 通过尝试解析~、..、.、和符号链接来标准化路径 - 使用路径NSPathUtilities.h tempdir = NSTemporaryDirectory(); 临时文件的目录名 path = [fm currentDirectoryPath]; [path lastPathComponent]; 从路径中提取最后一个文件名 fullpath = [path stringByAppendingPathComponent:fname];将文件名附加到路劲的末尾 extenson = [fullpath pathExtension]; 路径名的文件扩展名 homedir = NSHomeDirectory();用户的主目录 component = [homedir pathComponents]; 路径的每个部分 NSProcessInfo类:允许你设置或检索正在运行的应用程序的各种类型信息 (NSProcessInfo *)processInfo 返回当前进程的信息 -(NSArray*)arguments 以NSString对象数字的形式返回当前进程的参数 -(NSDictionary *)environment 返回变量/值对词典。描述当前的环境变量 -(int)processIdentity 返回进程标识 -(NSString *)processName 返回进程名称 -(NSString *)globallyUniqueString 每次调用该方法都会返回不同的单值字符串,可以用这个字符串生成单值临时文件名 -(NSString *)hostname 返回主机系统的名称 -(unsigned int)operatingSystem 返回表示操作系统的数字 -(NSString *)operatingSystemName 返回操作系统名称 -(NSString *)operatingSystemVersionString 返回操作系统当前版本 -(void)setProcessName:(NSString *)name 将当前进程名称设置为name 过滤数组中的文件类型 : [fileList pathsMatchingExtensions:[NSArrayarrayWithObject:@"jpg"]]; /////////////////////////////////////////////////////////////////////////////////////////////////////////// 基本文件操作NSFileHandle 常用NSFileHandle方法 (NSFileHandle *)fileHandleForReadingAtPath:path 打开一个文件准备读取 (NSFileHandle *)fileHandleForWritingAtPath:path 打开一个文件准备写入 (NSFileHandle *)fileHandleForUpdatingAtPath:path 打开一个文件准备更新(读取和写入) -(NSData *)availableData 从设备或通道返回可用数据 -(NSData *)readDataToEndOfFile 读取其余的数据直到文件末尾(最多UINT_MAX字节) -(NSData *)readDataOfLength:(unsigned int)bytes 从文件读取指定数目bytes的内容 -(void)writeData:data 将data写入文件 -(unsigned long long) offsetInFile 获取当前文件的偏移量 -(void)seekToFileOffset:offset 设置当前文件的偏移量 -(unsigned long long) seekToEndOfFile 将当前文件的偏移量定位的文件末尾 -(void)truncateFileAtOffset:offset 将文件的长度设置为offset字节 -(void)closeFile 关闭文件 获取文件大小 Using the C FILE type: int getFileSizeFromPath(char * path) { FILE * file; int fileSizeBytes = 0; file = fopen(path,"r"); if(file>0){ fseek(file, 0, SEEK_END); fileSizeBytes = ftell(file); fseek(file, 0, SEEK_SET); fclose(file); } return fileSizeBytes; } or in XCode use the NSFileManager: NSFileManager * filemanager = [[NSFileManager alloc]init]; if([filemanager fileExistsAtPath:[self getCompletePath] isDirectory:&isDirectory]){ NSDictionary * attributes = [filemanager attributesOfItemAtPath:[self getCompletePath] error:nil]; // file size NSNumber *theFileSize; if (theFileSize = [attributes objectForKey:NSFileSize]) _fileSize= [theFileSize intValue]; }
NSFileManager和NSFileHandle(附:获取文件大小 )
标签:
原文地址:http://www.cnblogs.com/ZhangYuGe/p/4425606.html