Написание и доступ к файлам приложений на устройствах iOS - PullRequest
1 голос
/ 15 ноября 2011

У меня есть программа, которая генерирует собственный pcap-файл Wireshark (вроде сетевого журнала, если вы раньше не использовали его). Мое приложение использует код ANSI-C для этого. В Android и Windows я просто использую «fopen», «fwrite» и т. Д. Для записи файла на диск.

Как это работает на iOS? Какой путь к файлу я предоставлю fopen? Например, в Android я использую "/ SDCard" или Similiar, что здесь? Как на самом деле извлечь файл впоследствии с моего устройства iOS?

РЕДАКТИРОВАТЬ: мне нужно явно использовать ANSI-C; все написано в библиотеках C, используемых в моем приложении для iOS

Ответы [ 2 ]

4 голосов
/ 15 ноября 2011

Вы можете полностью использовать fopen (я использую его в кроссплатформенном коде).Однако вы хотите использовать [documentPath fileSystemRepresentation].

4 голосов
/ 15 ноября 2011

В 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 или другой поддерживаемой кодировкой.

...