android权限列出资产子目录文件

时间:2012-03-05 18:14:21

标签: java android eclipse

我想列出包含在名为“subDir”的assets子目录中的文件,并使用以下代码。但是,如果我设置dirFrom =“”(空),则正确列出资产中的所有文件夹。但是,对于dirFrom =“/ subDir /”,不起作用。我已经尝试了“subDir /”和相同的结果。是否有必要在清单中声明权限?谢谢。

private void copyFiles(String dirFrom, String dirTo) throws IOException {

    AssetManager am = getAssets();

    String fileList[] = am.list(dirFrom);

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

}    

2 个答案:

答案 0 :(得分:1)

AssetManager.list(String)采用“资产内的相对路径”。

Android / Java通常希望路径最终没有'/'

此外,“相对”意味着一开始不应该有'/' - 否则它可能是文件系统根目录中的路径。

仅使用"subDir""subDir/subsubDir"即可。

答案 1 :(得分:0)

zapl的回答是正确的,但附加信息:如果你想复制文件,例如复制到SD卡,你必须用斜杠声明你的InputStream:

    InputStream in = assetManager.open("subDir/"+filename);

这是我从子文件夹中复制文件时遇到的问题。我最初的计划是直接从资产文件夹复制文件,这有效,但给了我一些IOExceptions。在资产文件夹中有一些目录“webkit”,“sound”,“images”和另一个我无法记住的目录......但我还没有看到它们。这必须是Android内部我不理解的东西。但为了摆脱这个,我把我的文件放在一个子文件夹中。我知道这是一个旧线程,但我把这些信息放在这个帖子中只是为了帮助其他有类似问题的人。