使用C ++访问iOS上的Documents文件夹

时间:2012-11-20 08:40:25

标签: c++ ios

我想知道是否有办法在iOS上使用C ++获取对Documents文件夹的引用(即没有在Objective-C中使用任何代码;这是因为它是一个仅在C ++中实现的框架,可以添加作为iOS项目中的库。)

如果可能,请在答案中提供代码。

3 个答案:

答案 0 :(得分:7)

使用下面的代码,我可以访问我的应用程序中的缓存文件夹。我认为,文件夹在“/ Library / Documents”中,或者其他一些文件夹。

char *home = getenv("HOME");
char *subdir = "/Library/Caches/subdir";

home + subdir =完整路径

接下来,使用完整路径,您可以在C ++中进行通常的读/写操作

答案 1 :(得分:1)

是的,您可以访问普通的Unix API。请参阅Apples iOS manpages here

答案 2 :(得分:1)

获取路径(使用Cocoa API),然后使用和API将其转换为C ++字符串兼容表示,例如:CFStringGetFileSystemRepresentationCFURLGetFileSystemRepresentation-[NSString fileSystemRepresentation]

类似的东西:

// you may need to wrap this in an autorelease pool
NSArray * paths(NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES));
const char* const path([[paths objectAtIndex:0] fileSystemRepresentation]);
if (0 == fsrep) {
  uh-oh
}
const std::string result(path);

然后你可以简单地将它放在它自己的ObjC ++翻译中并从函数中返回result(这对于其余的C ++源是可见的)。