获取File中的资源路径以读取多个文件

时间:2017-01-03 07:07:48

标签: android file assets

我在资产中有多个.epub文件,我想要listFile中的所有.epub文件。在我的旧代码中,我使用外部存储文件路径,用于获取.epub文件,如此

File myFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Files" );

File listFile[] = myFile.listFiles();
if (listFile != null && listFile.length > 0) {
    for (int i = 0; i < listFile.length; i++) {

        if (listFile[i].getName().endsWith(".epub")) {

            myNewBookModels = new NewBookModels();
            Log.i(TAG, "getEpubFilesFromFileManager: " + ".." + listFile[i].getName());

            myNewBookModels.setBookName(listFile[i].getName().toString());
            myNewBookModels.setBookPath(listFile[i].getPath().toString());
            myNewBookModels.setBitmap(bookLoaded(listFile[i].getName().toString()));
            arrayList.add(myNewBookModels);
        }
    }
}

但我想从assets文件夹中获取.epub文件。我怎么能这样做?

我也想从那个.epub文件中找到这个字段

1)姓名

2)路径

3)位图(封面图像)

对我来说是必须的。这只能在File中实现,但我需要File

中的资产.epub文件

3 个答案:

答案 0 :(得分:1)

您可以使用此路径访问资源文件夹 - “file:/// android_asset / files”

OR

//Directory or File name
dirForm = "files";  
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++)
                {
                     File file = new File(fileList[i]);
                     if ((file.getName()).endsWith(".epub")) {

                      Log.i(TAG, "getEpubFilesFromFileManager: " + ".." + file.getName() +"Path"+ file.getPath());
                     }
                }
            }
    }

答案 1 :(得分:0)

如果您的文件位于资产文件夹中,则它始终是固定路径。所以你可以在字符串中给出一个硬编码路径。

答案 2 :(得分:0)

您可以使用AssetManager课程&amp;然后你可以Read files from Assets文件夹。