转自:http://blog.csdn.net/wm_jiangnanan/article/details/8669369

获取iphone模拟器程序中的plist文件

最近遇到了个问题,就是在程序中写文件。我用的是cocos2d-x,它使用的是CCUserDefault来读写本地的一个XML文件,原生的iphone程序,是读写的一个plist文件,它们之间的相同之处就是都写在了程序的documents目录下,这是由于ios系统的沙盒机制,每个程序只能操作沙盒内部的数据,可以读取代码中的数据,但是不允许写入数据。所以我们在保存一些数据的,或者想在程序中写一些文件的情况下,我们可以考虑在他的documents目录下写文件。那么这个文件在哪里呢?

      我们看到工程中只有一个info.plist文件,这是程序的配置文件,我们想要找的文件并不在这里,而是在实际的程序中,废话不多说,首先我们新建一个cocos2d-x的空工程,然后在bool HelloWorld::init()的return方法之前加入这样一句话

    CCLog("the xml path is %s",CCFileUtils::sharedFileUtils()->getWriteablePath().c_str());

这个函数getWriteablePath我们看看它的内部实现:

std::string CCFileUtils::getWriteablePath()
{
   // save to document folder
   NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
   NSString *documentsDirectory = [paths objectAtIndex:0];
   std::string strRet = [documentsDirectory UTF8String];
   strRet.append("/");
   return strRet;
}

它其实是调用的OC的代码,获取了程序的根路径的路径,然后获取documents的路径,如果看不懂没关系,就理解为获取程序路径就行了。


下面控制台会打印出如下文字:

Cocos2d: the xml path is /Users/hangm/Library/Application Support/iPhone Simulator/6.0/Applications/AAB4B5DD-CD66-482B-BD11-B923A1AD645D/Library/Caches/

这行输出就显示出了程序中xml或者plist的路径,我给大家翻译一下,

/Users 就是打开电脑里边的硬盘,然后会看见一个用户,这就是这个目录

/hangm 这是我电脑的名字

/Library 资源库

注意了啊,当你打开以你的名字为为文件名的文件夹时,你会发现,没有“资源库”这个文件夹,为什么呢,因为这个文件夹被隐藏了,我们需要显示隐藏文件

显示隐藏文件 ,我们把中端打开,然后输入如下命令:

    显示文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool true

                                 defaults write com.apple.finder AppleShowAllFiles YES

    隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool false

                                 defaults write com.apple.finder AppleShowAllFiles NO


    输入完指令,需要重启Finder,方法如下:

    重启Finder:鼠标单击窗口左上角的苹果标志-->强制退出-->Finder-->重新启动

这时候你就能看见隐藏的“资源库”文件夹了,双击不能打开,你可以点鼠标右键,打开,来打开这个文件夹。

/Application Support接着打开这个文件夹

/iPhone Simulator 继续打开

/6.0 我这里有两个模拟器,5.0和6.0所以就有两个文件夹,这时×××6.0的文件夹

/Applications 打开文件夹

/AAB4B5DD-CD66-482B-BD11-B923A1AD645D 这一大串字母符号组成的字符串是程序ID,程序ID是唯一的,我们打开这个文件夹

/Library/ 打开

Caches/ 打开

在这里,我们就看到了我们可以读写的XML或者Plist文件。