在iOS设备上编写和访问应用程序文件

时间:2011-11-15 14:48:21

标签: c ios file fopen pcap

我有一个程序可以生成自己的Wireshark pcap文件(如果您之前曾经使用过它,那就是一种网络日志)。我的应用程序使用ANSI-C代码执行此操作。 在Android和Windows中,我只需使用'fopen'和'fwrite'等将文件写入光盘。

这如何在iOS上运行? 我将为fopen提供什么文件路径?例如在Android中我使用“/ sdcard”或类似的,它在这里是什么? 我如何从iOS设备中实际提取文件?

编辑:我需要明确使用ANSI-C;所有的写作都是在我的iOS应用程序中使用的C库中完成的

2 个答案:

答案 0 :(得分:4)

在iOS中,可以使用以下代码找到文档目录路径:

NSArray  *documentDirList = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentDir  = [documentDirList objectAtIndex:0];
NSString *documentPath = [documentDir stringByAppendingPathComponent:@"fileName"];

目标写作方法可能是:

NSData *data = [NSData dataWithBytes:bytes length:length];
[data writeToFile:documentPath atomically:YES];

使用“C”方法如fopen获取基于字符的字符串:

const char *cDocumentPath = [documentPath cStringUsingEncoding:encoding];

encoding可能是NSUTF8StringEncoding或其他支持的编码。

答案 1 :(得分:4)

您可以完全使用fopen(我在跨平台代码中使用它)。但是,您确实想使用[documentPath fileSystemRepresentation]