eclipse assets子文件夹中包含的android列表文件

fdbelqdn  于 7个月前  发布在  Eclipse
关注(0)|答案(3)|浏览(78)

我创建一些文件夹到资产。每个文件夹包含文件,我想列出。我使用以下代码,但我总是得到一个空值fileList。谢谢。
我用的,listFiles("/assets/images/","nothing");

private void listFiles(String dirFrom, String dirTo) {

        File f = new File(dirFrom);

        String fileList[] = f.list();

            if (fileList != null)
            {   
                for ( int i = 0;i<fileList.length;i++)
                {
                    Log.d("",fileList[i]); 
                }
            }
    }

字符串

kyxcudwk

kyxcudwk1#

您可能会想要这样做:

private void listFiles(String dirFrom) {
        Resources res = getResources(); //if you are in an activity
        AssetManager am = res.getAssets();
        String fileList[] = am.list(dirFrom);

            if (fileList != null)
            {   
                for ( int i = 0;i<fileList.length;i++)
                {
                    Log.d("",fileList[i]); 
                }
            }
    }

字符串
另外,如果要列出图像,则函数调用应为:listFiles("images");

pgky5nke

pgky5nke2#

最简单的肯定是这样:

String[] fileList = getAssets().list("images");

字符串

wwtsj6pe

wwtsj6pe3#

@user答案的改进版本,在Kotlin中[递归]

fun listAssetFiles(context: Context, path: String,block:(isDir:Boolean,path:String)->Unit):Boolean{
    try {
        val list = context.assets.list(path)
        list?.also {files->
            if (files.isNotEmpty()) {
                for (file in files) {
                    val relativePath=if (path.isEmpty()) file else "$path${File.separatorChar}$file"
                    if (!listAssetFiles(context,relativePath,block))
                        block.invoke(false,relativePath) else block.invoke(true,relativePath)
                }
            } else return false
        }
    } catch (e: IOException) {
        return false
    }
    return true
}

字符串
用途:

val fileList = mutableListOf<String>()
    val folderList = mutableListOf<String>()
    listAssetFiles(getApplication(), "my/sample/folder") // or empty for the root folder 
    { isDir, path ->
        if (isDir) folderList.add(path) else fileList.add(path)
    }

相关问题