Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 如何在资产中的某个文件夹中获取一定数量的文件?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我的方法太慢了.结果在265个文件中它给我14秒.

方法

private void assetFilesamount(String path) {
    AssetManager assetManager = getAssets();
    String assets[] = null;
    try {
        assets = assetManager.list(path);
        if (assets.length == 0) {
            filesamount++;              
        } else {
            for (int i = 0; i < assets.length; ++i) {
                assetFilesamount(path + "/" + assets[i]);
            }
        }
    } catch (IOException eX) {
        Log.e("tag","I/O Exception",eX);
    }
}

解决方法

我最近遇到了同样的问题(我想从资产目录中复制一些文件),它在应用程序的某个地方,几秒钟的等待就是不会削减它. AssetManager.list()太慢了.所以我提出了一个解决方案,它很难看,但速度很快.

至少在我的情况下,由于assets文件夹是使用app构建的,因此我不会经常更改它.因此,我提出的解决方案是在资产目录中包含一个列出资产中所有文件文件.例如:

somedir/somefile.txt
somedir/anotherdir/anotherfile.txt
somedir/anotherdir/yetanotherfile.txt
somedir/anotherdir/somanyfiles.txt
...

所以它加载这个列表然后循环遍历列表而不必调用AssetManager.list();

它不漂亮或优雅,可能会破坏各种编码实践,但在我的情况下,它需要花费30秒到300毫秒的操作,所以在我的情况下这是值得的.

如果您的assets文件夹发生了很大变化,手动更新列表会很麻烦,您可能会在构建过程中添加一个脚本,而不是在构建时自动为您创建此目录列表文件.

大佬总结

以上是大佬教程为你收集整理的android – 如何在资产中的某个文件夹中获取一定数量的文件?全部内容,希望文章能够帮你解决android – 如何在资产中的某个文件夹中获取一定数量的文件?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。