iOS开发之常用路径及文件操作方法
2020-03-06 本文已影响0人
雪碧童鞋
1.常用的路径方法
1.获取AppName.app 目录路径:
NSString *path = [[NSBundle mainBundle] bundlePath];
2.获取Documents目录路径的方法:
NSString *documentPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
3.Library/Caches目录路径方法:
NSString *cachePath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject;
4.Library/Application Support目录路径方法:
[NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES) objectAtIndex:0]
5.tmp目录路径的方法:
NSString *tmpPaht = NSTemporaryDirectory();
6.获取沙盒主目录路径
NSString *homePaht = NSHomeDirectory();
2.文件操作相关方法
1. 判断文件/文件夹是否存在
+ (BOOL)isExistFileForPath:(NSString *)strFilePath {
if (strFilePath.length < 1) {
return NO;
}
NSFileManager *fileMgr = [NSFileManager defaultManager];
BOOL isDirectroy = NO;
BOOL result = [fileMgr fileExistsAtPath:strFilePath isDirectory:&isDirectroy];
if (!isDirectroy && result) {
return YES;
}
return NO;
}
2. 创建文件
NSString * path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString * filePath = [[path1 stringByAppendingPathComponent:@"bbb"] stringByAppendingPathExtension:@"txt"];
NSString * string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
BOOL success =[[string dataUsingEncoding:NSUTF8StringEncoding] writeToFile:filePath atomically:YES];
if (success) {
NSLog(@"写入成功");
}else{
NSLog(@"写入失败");
}
3. 创建文件夹(相比创建文件多了一行创建文件夹的代码)
NSString * path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString * path1 = [path stringByAppendingPathComponent:@"wenJianJia"];
if (![[NSFileManager defaultManager] fileExistsAtPath:path1]) {
[[NSFileManager defaultManager] createDirectoryAtPath:path1 withIntermediateDirectories:YES attributes:nil error:nil];
}
NSString * filePath = [[path1 stringByAppendingPathComponent:@"bbb"] stringByAppendingPathExtension:@"txt"];
NSString * string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
BOOL success =[[string dataUsingEncoding:NSUTF8StringEncoding] writeToFile:filePath atomically:YES];
if (success) {
NSLog(@"写入成功");
}else{
NSLog(@"写入失败");
}
4. 删除文件
+ (BOOL)deleteFileOrDirectoryAtPath:(NSString *)strPath {
NSFileManager *fileMgr = [NSFileManager defaultManager];
NSError *error = nil;
BOOL result = [fileMgr removeItemAtPath:strPath error:&error];
return result;
}
5. 移动文件
+ (BOOL)moveFileAtPath:(NSString *)originPath toNewPath:(NSString *)newPath {
// 调用上方判断文件夹路径是否存在
if (![HJFileManager isExistFileForPath:originPath]) {
return NO;
}
NSFileManager *fileMgr = [NSFileManager defaultManager];
BOOL bResult = [fileMgr moveItemAtPath:originPath toPath:newPath error:nil];
return bResult;
}