我有一个程序可以生成自己的Wireshark pcap文件(如果您之前曾经使用过它,那就是一种网络日志)。我的应用程序使用ANSI-C代码执行此操作。 在Android和Windows中,我只需使用'fopen'和'fwrite'等将文件写入光盘。
这如何在iOS上运行? 我将为fopen提供什么文件路径?例如在Android中我使用“/ sdcard”或类似的,它在这里是什么? 我如何从iOS设备中实际提取文件?
编辑:我需要明确使用ANSI-C;所有的写作都是在我的iOS应用程序中使用的C库中完成的
答案 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]
。