解决[[NSFileManager defaultManager] contentsOfDirectoryAtPath 方法获取不到数据的bug
Posted jzssuanfa
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决[[NSFileManager defaultManager] contentsOfDirectoryAtPath 方法获取不到数据的bug相关的知识,希望对你有一定的参考价值。
在说这个问题之前,必须先解释一下,我们在引入project的时候,xcode会给我们3个选项
1.Copy items if needed
主要是说明,是否要将文件复制到project所在文件夹。
假设不选中。并且该库文件不在project文件夹下。引入文件的时候就不过引入逻辑链接,不复制文件。(假设库文件移动,则可能在编译project的时候出错)
假设选中,则将该文件复制到project文件夹下(系统推荐的方式)。尽管引用的也是逻辑链接,可是不会由于引动库文件而引起错误
2.Create groups
把选择的文件加入到project的group下,假设你选择的是文件。则把目录觉得是group。他加入的目录相应的project目录和文件路径不一定是一一相应的。你能够删除文件,能够把这个文件删除在project外,也能够删除文件相应的本地文件。应该它生成的目录是黄色的。
比如:
3.Create folder references
这样的方法是建立一个目录的索引。同一时候目录中的全部文件也会加入到整个project。他加入的目录相应的project目录和文件路径是一一相应的。你要删除当中的文件的话能够直接到文件目录下把文件删除,然后再刷新一下目录。文件就会被删除了。这样加入目录的方法非常方便。你在做cocos2d的project时应该会经经常使用到。应该他生成的目录是蓝色的。
比如:
通过Show in Finder 打开project,右键两个目录能够看出
我使用 [[NSFileManager defaultManager] contentsOfDirectoryAtPath 本意是获取bundle中的资源,所以用Create
folder references,就能够解决获取为nil的bug了
參考文章:http://blog.csdn.net/yu0089/article/details/16984985
http://www.cnblogs.com/taintain1984/p/3423773.html
http://www.cocoachina.com/bbs/simple/?t20533.html
http://www.4byte.cn/question/21930/unable-to-copy-folder-from-application-bundle-to-document-directory.html
以上是关于解决[[NSFileManager defaultManager] contentsOfDirectoryAtPath 方法获取不到数据的bug的主要内容,如果未能解决你的问题,请参考以下文章
视频并不总是导出到相机胶卷:NSFileManager 的 removeItemAtPath 非阻塞?
包和 NSFileManager enumeratorAtURL:包括PropertiesForKeys:options:errorHandler:
NSFileManager.contentsOfDirectoryAtURL 返回的文件根据 NSFileManager.fileExistsAtPath 不存在?