- 使用接口 FileUtils::fullPathForFilename 在安卓下填入相对目录后返回空,ios正常。
- 使用接口 FileUtils::listFilesRecursively 在安卓下递归获取文件目录列表为空,ios正常。
我的需求是获取Resources 目录下某个目录的所有文件(递归)。已经将搜索目录正确设置,Android端的执行不符合预期,无法获取。
cocos2dx 版本 3.17.2
我的需求是获取Resources 目录下某个目录的所有文件(递归)。已经将搜索目录正确设置,Android端的执行不符合预期,无法获取。
cocos2dx 版本 3.17.2
一般自己写一个.txt 把所有资源都记录下来吧;热更就是这么做的;在手机上,在webgl,在pc上路径和 io 都是不通的
我要做资源预加载,项目着急上,我目前就像你说的这么做的。但是感觉不是很优雅,把资源列表读取也要耗时,而且更新资源后又得更新列表,容易遗忘。
我这纯原生app 只考虑Android 和 iOS
哪位有其他解决方案吗?请分享下。
去Android层,写个方法遍历
和mac/ios/windows不一样,安卓包本质是个zip,不好用常规方式遍历内部文件。递归遍历目录这已经不是引擎的功能范畴,但好在JNI提供了assets内的文件操作接口API
以下是个简单案例
AAssetManager *aAssetManager = CCNS::CC_FILEUTILS::getAssetManager();
AAssetDir* gameresDir = AAssetManager_openDir(aAssetManager, "xxxx");
if (gameresDir){
const char* filename;
// 使用此方式遍历当前目录
while ((filename = AAssetDir_getNextFileName(gameresDir)) != nullptr){
CCLOGINFO(" AAssetDir_getNextFileName %s",filename);
}
AAssetDir_close(gameresDir);
}