博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NSFileManager和NSFileHandle(附:获取文件大小 )
阅读量:5818 次
发布时间:2019-06-18

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

//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];}

  

转载于:https://www.cnblogs.com/ZhangYuGe/p/4425606.html

你可能感兴趣的文章
BZOJ1014:[JSOI2008]火星人prefix——题解
查看>>
使用Unity3D引擎开发赛车游戏
查看>>
HTML5新手入门指南
查看>>
opennebula 开发记录
查看>>
ubuntu 修改hostname
查看>>
sql 内联,左联,右联,全联
查看>>
C++关于字符串的处理
查看>>
6、Web Service-拦截器
查看>>
Flask 源码流程,上下文管理
查看>>
stream classdesc serialVersionUID = -7218828885279815404, local class serialVersionUID = 1.
查看>>
ZAB与Paxos算法的联系与区别
查看>>
java 读取本地的json文件
查看>>
Breaking parallel loops in .NET C# using the Stop method z
查看>>
Android Content Provider Guides
查看>>
修改故障转移群集心跳时间
查看>>
[轉]redis;mongodb;memcache三者的性能比較
查看>>
微软职位内部推荐-Sr DEV
查看>>
用计算器计算“异或CRC”
查看>>
让你的WPF程序在Win7下呈现Win8风格主题
查看>>
深刻理解C#的传值调用和传引用调用
查看>>