📜  iOS-文件处理(1)

📅  最后修改于: 2023-12-03 15:01:26.469000             🧑  作者: Mango

iOS 文件处理

在 iOS 开发中,经常需要进行文件处理的操作,例如读写文件、查询目录、文件压缩等等。本文将介绍 iOS 文件处理的常用方法和技巧。

文件读写
读取文件

我们可以使用 NSFileManager 类的 contentsAtPath: 方法来读取文件内容。该方法返回的是 NSData 类型的数据,我们可以将其转化为字符串或其他格式。

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"example" ofType:@"txt"];
NSData *fileData = [NSData dataWithContentsOfFile:filePath];
NSString *fileString = [[NSString alloc] initWithData:fileData encoding:NSUTF8StringEncoding];
写入文件

我们可以使用 NSString 类的 writeToFile:atomically:encoding:error: 方法来写入文件。该方法以原子方式写入文件,返回值表示是否写入成功。

NSString *filePath = [NSTemporaryDirectory() stringByAppendingPathComponent:@"example.txt"];
NSString *fileContent = @"Hello, World!";
NSError *error = nil;
BOOL isSuccess = [fileContent writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:&error];
目录操作
查询目录

我们可以使用 NSFileManager 类的 URLsForDirectory:inDomains: 方法来获取特定目录的 URL。

NSArray *documentURLs = [[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask];
NSURL *documentURL = documentURLs[0];
NSLog(@"Documents Directory URL: %@", documentURL);
获取文件列表

我们可以使用 NSFileManager 类的 contentsOfDirectoryAtPath:error: 方法来获取目录中的文件列表。

NSString *documentsDirectoryPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
NSError *error = nil;
NSArray *fileList = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentsDirectoryPath error:&error];
NSLog(@"Documents Directory File List: %@", fileList);
创建目录

我们可以使用 NSFileManager 类的 createDirectoryAtPath:withIntermediateDirectories:attributes:error: 方法来创建目录。

NSString *directoryPath = [NSTemporaryDirectory() stringByAppendingPathComponent:@"example"];
BOOL isSuccess = [[NSFileManager defaultManager] createDirectoryAtPath:directoryPath withIntermediateDirectories:YES attributes:nil error:nil];
文件压缩

我们可以使用 ZipArchive 第三方库来进行文件压缩。

// 导入 ZipArchive.h 文件

NSString *documentsDirectoryPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
NSString *sourceFilePath = [documentsDirectoryPath stringByAppendingPathComponent:@"example.txt"];
NSString *destinationFilePath = [documentsDirectoryPath stringByAppendingPathComponent:@"example.zip"];

ZipArchive *zipArchive = [[ZipArchive alloc] init];
BOOL isSuccess = [zipArchive CreateZipFile2:destinationFilePath];
[zipArchive addFileToZip:sourceFilePath newname:@"example.txt"];
[zipArchive CloseZipFile2];
结语

以上就是 iOS 文件处理的常用方法和技巧。希望本文能够对您有所帮助。