注意:
措施名称 | 描述 |
-(NSData *)contentsAtPath:path | 从path所代表的文件中读取数据 |
-(BOOL)createFileAtPath:path contents:(BOOL)data attributes:attr | 将数据写入文件 |
-(BOOL)removeFileAtPath:path handler:handler | 将path所代表的文件删除 |
-(BOOL)movePath:from toPath:to handler:handler | 移动或者重命名文件,to所代表的文件不能是已经存在的文件 |
-(BOOL)copyPath:from toPath:to handler:handler | 复制文件,to所代表的文件不能是已经存在的文件 |
-(BOOL)contentsEqualAtPath:path1 andPath:path2 | 比较path1和path2所代表的文件 |
-(BOOL)fileExistsAtPath:path | 检查path所代表的文件是否存在 |
-(BOOL)isReadableFileAtPath:path | 检查path所代表的文件是否存在、是否可读 |
-(BOOL)isWritableFileAtPath:path | 检查path所代表的文件是否存在、是否可写 |
-(NSDictionary *)fileAttributesAtPath:path traverseLink:(BOOL)flag | 获取path所代表的文件属性 |
-(BOOL)changeFileAttributes:attr atPath:path | 改变文件属性 |
iOS的沙盒机制,应用只能访问自己应用目录下的文件。iOS不像android,没有SD卡概念,不能直接访问图像、视频等内容。iOS应用产生的内容,如图像、文件、缓存内容等都必须存储在自己的沙盒内。默认情况下,每个沙盒含有3个文件夹:Documents, Library 和 tmp。Library包含Caches、Preferences目录。
1、创建文件夹
-(void)createDirectory{ NSString *documentsPath =[self getDocumentsPath]; NSFileManager *fileManager = [NSFileManager defaultManager]; NSString *iOSDirectory = [documentsPath stringByAppendingPathComponent:@"iOS"]; BOOL isSuccess = [fileManager createDirectoryAtPath:iOSDirectory withIntermediateDirectories:YES attributes:nil error:nil]; if (isSuccess) { NSLog(@"success"); } else { NSLog(@"fail"); } }
2、创建文件
-(void)createFile{ NSString *documentsPath =[self getDocumentsPath]; NSFileManager *fileManager = [NSFileManager defaultManager]; NSString *iOSPath = [documentsPath stringByAppendingPathComponent:@"iOS.txt"]; BOOL isSuccess = [fileManager createFileAtPath:iOSPath contents:nil attributes:nil]; if (isSuccess) { NSLog(@"success"); } else { NSLog(@"fail"); } }
3、写文件
-(void)writeFile{ NSString *documentsPath =[self getDocumentsPath]; NSString *iOSPath = [documentsPath stringByAppendingPathComponent:@"iOS.txt"]; NSString *content = @"我要写数据啦"; BOOL isSuccess = [content writeToFile:iOSPath atomically:YES encoding:NSUTF8StringEncoding error:nil]; if (isSuccess) { NSLog(@"write success"); } else { NSLog(@"write fail"); } }
4、读取文件内容
-(void)readFileContent{ NSString *documentsPath =[self getDocumentsPath]; NSString *iOSPath = [documentsPath stringByAppendingPathComponent:@"iOS.txt"]; NSString *content = [NSString stringWithContentsOfFile:iOSPath encoding:NSUTF8StringEncoding error:nil]; NSLog(@"read success: %@",content); }
5、判断文件是否存在
- (BOOL)isSxistAtPath:(NSString *)filePath{ NSFileManager *fileManager = [NSFileManager defaultManager]; BOOL isExist = [fileManager fileExistsAtPath:filePath]; return isExist; }
6、计算文件大小
- (unsigned long long)fileSizeAtPath:(NSString *)filePath{ NSFileManager *fileManager = [NSFileManager defaultManager]; BOOL isExist = [fileManager fileExistsAtPath:filePath]; if (isExist){ unsigned long long fileSize = [[fileManager attributesOfItemAtPath:filePath error:nil] fileSize]; return fileSize; } else { NSLog(@"file is not exist"); return 0; } }
7、计算整个文件夹中所有文件大小
- (unsigned long long)folderSizeAtPath:(NSString*)folderPath{ NSFileManager *fileManager = [NSFileManager defaultManager]; BOOL isExist = [fileManager fileExistsAtPath:folderPath]; if (isExist){ NSEnumerator *childFileEnumerator = [[fileManager subpathsAtPath:folderPath] objectEnumerator]; unsigned long long folderSize = 0; NSString *fileName = @""; while ((fileName = [childFileEnumerator nextObject]) != nil){ NSString* fileAbsolutePath = [folderPath stringByAppendingPathComponent:fileName]; folderSize += [self fileSizeAtPath:fileAbsolutePath]; } return folderSize / (1024.0 * 1024.0); } else { NSLog(@"file is not exist"); return 0; } }
8、删除文件
-(void)deleteFile{ NSString *documentsPath =[self getDocumentsPath]; NSFileManager *fileManager = [NSFileManager defaultManager]; NSString *iOSPath = [documentsPath stringByAppendingPathComponent:@"iOS.txt"]; BOOL isSuccess = [fileManager removeItemAtPath:iOSPath error:nil]; if (isSuccess) { NSLog(@"delete success"); }else{ NSLog(@"delete fail"); } }
9、移动文件
- (void)moveFileName { NSString *documentsPath =[self getDocumentsPath]; NSFileManager *fileManager = [NSFileManager defaultManager]; NSString *filePath = [documentsPath stringByAppendingPathComponent:@"iOS.txt"]; NSString *moveToPath = [documentsPath stringByAppendingPathComponent:@"iOS.txt"]; BOOL isSuccess = [fileManager moveItemAtPath:filePath toPath:moveToPath error:nil]; if (isSuccess) { NSLog(@"rename success"); }else{ NSLog(@"rename fail"); } }
10、重命名
- (void)renameFileName { //通过移动该文件对文件重命名 NSString *documentsPath =[self getDocumentsPath]; NSFileManager *fileManager = [NSFileManager defaultManager]; NSString *filePath = [documentsPath stringByAppendingPathComponent:@"iOS.txt"]; NSString *moveToPath = [documentsPath stringByAppendingPathComponent:@"rename.txt"]; BOOL isSuccess = [fileManager moveItemAtPath:filePath toPath:moveToPath error:nil]; if (isSuccess) { NSLog(@"rename success"); }else{ NSLog(@"rename fail"); } }
时间: 2024-10-15 14:52:57