获取路径
获取AppName.app 目录路径:
NSString *path = [[NSBundle mainBundle] bundlePath];
获取Documents目录路径的方法:
NSString *documentPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
Library/Caches目录路径方法:
NSString *cachePath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject;
Library/Application Support目录路径方法:
[NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES) objectAtIndex:0]
获取临时文件的路径目录
NSString *temPath = NSTemporaryDirectory();
获取沙盒主目录路径
NSString *homePath = NSHomeDirectory();
返回当前用户的登录名
NSString* NSUserName(void)
返回当前用户的完整用户名
NSString* NSFullUserName(void)
返回用户user的主目录
NSString* NSHomeDirectoryForUser(NSString* user)
NSFileManager文件操作
根据url创建目录(文件夹)
-(BOOL)createDirectoryAtURL:url withIntermediateDirectories:createIntermediates attributes:attributes error:error
根据url创建文件
-(NSData *)contentsAtPath:path
向一个文件写入数据
-(BOOL)createFileAtPath: path contents:(NSData *)data attributes:attr
删除一个文件
-(BOOL)removeItemAtPath:path error:err
重命名或者移动一个文件(to不能是已存在的)
-(BOOL)moveItemAtPath:from toPath:to error:err
复制文件(to不能是已存在的)
-(BOOL)copyItemAtPath:from toPath:to error:err
比较两个文件的内容
-(BOOL)contentsEqualAtPath:path andPath:path2
测试文件是否存在
-(BOOL)fileExistAtPath:path
测试文件是否存在,并且是否能执行读操作
-(BOOL)isReadableFileAtPath:path
测试文件是否存在,并且是否能执行写操作
-(BOOL)isWriteableFileAtPath:path
获取文件的属性
-(NSDictionary *)attributesOfItemAtPath:path error:err
更改文件的属性
-(BOOL)setAttributesOfItemAtPath:attr error:err
路径(path)相关方法(NSString分类)
根据components中的元素构造有效路径
+(NSString *)pathWithComponens:components
析构路径,获得组成此路径的各个部分
-(NSArray *)pathComponents
提取路径的最后一个组成部分
-(NSString *)lastPathComponent
从路径的最后一个组成部分中提取其扩展名
-(NSString *)pathExtension
将path添加到现有路径的末尾
-(NSString *)stringByAppendingPathComponent:path
将指定的扩展名添加到路径的最后一个组成部分
-(NSString *)stringByAppendingPathExtension:ext
删除路径的最后一个组成部分
-(NSString *)stringByDeletingLastPathComponent
从文件的最后一部分删除扩展名
-(NSString *)stringByDeletingPathExtension
将路径中代字符扩展成用户主目录(~)或指定用户的主目录(~user)
-(NSString *)stringByExpandingTileInPath
尝试解析路径中的符号链接
-(NSString *)stringByresolvingSymlinksInPath
通过尝试解析~、..(父目录符号)、.(当前目录符号)和符号链接来标准化路径
-(NSString *)stringByStandardizingPath
NSFileHandle
获取文件句柄(以写入为例)
NSFileHandle *handle = [NSFileHandle fileHandleForWritingAtPath:filePath];
以写入的方式获取文件句柄,分别是path和url的方式打开
+ (nullable instancetype)fileHandleForWritingAtPath:(NSString *)path
+ (nullable instancetype)fileHandleForWritingToURL:(NSURL *)url error:(NSError **)error
以读取的方式获取文件句柄,分别是path和url的方式打开
+ (nullable instancetype)fileHandleForReadingAtPath:(NSString *)path 打开一个文件准备读取
+ (nullable instancetype)fileHandleForReadingFromURL:(NSURL *)url error:(NSError **)error
以更新的方式获取文件句柄,分别是path和url的方式打开
+ (nullable instancetype)fileHandleForUpdatingAtPath:(NSString *)path;
+ (nullable instancetype)fileHandleForUpdatingURL:(NSURL *)url error:(NSError **)error
获取文件大小
FileSize = [[attributes objectForKey:NSFileSize] intValue]
以追加的形式写入data数据文件到末尾
- (BOOL)writeData:(NSData *)data error:(out NSError **)error
读取数据到文件的末尾
- (nullable NSData *)readDataToEndOfFileAndReturnError:(out NSError **)error
读取文件到指定长度
- (nullable NSData *)readDataUpToLength:(NSUInteger)length error:(out NSError **)error
获取游标的偏移量
- (BOOL)getOffset:(out unsigned long long *)offsetInFile error:(out NSError **)error
将游标放到指定长度偏移,用于插入数据
- (BOOL)seekToOffset:(unsigned long long)offset error:(out NSError **)error
截取数据到指定偏移量
- (BOOL)truncateAtOffset:(unsigned long long)offset error:(out NSError **)error
关闭文件句柄
- (BOOL)closeAndReturnError:(out NSError **)error