2017-01-03 107 views
-1

我在资产中有多个.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); 
     } 
    } 
} 

,但我想,从资产文件夹.epub文件。我怎样才能做到这一点?

我也想从.epub文件

1)这个字段名

2)路径

3)位图(封面图片)

这是强制性的我。这只可能在File但我想要资产.epub文件File

回答

0

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

+0

能否请您详细解释。 –

+0

我的意思是当你的文件在外部存储器中时,它们可能有可变路径。在这种情况下,您需要在运行时获取路径。但是现在,当您的文件位于Android的资产文件夹中时,它将始终在所有设备中修复。所以你不需要在运行时获得路径。你可以给一个硬编码的路径。 &典型的Android Studio项目,您将拥有一个应用程序/模块,其中包含主/源代码集(app/src/main/off项目根目录),因此您的主资源将位于app/src/main/assets/。和名称:String [] listOfFileName = getContext()。getAssets()。list(“your/path”); – Charu

+0

String [] listOfFileName = getContext()。getAssets()。list(“your/path/inside/asset”); – Charu

1

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

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()); 
        } 
       } 
      } 
    } 
+0

在这个'fileList [i] .getName()'我没有得到'getName()',因为fileList []是字符串数组 –

+0

直接fileList [我] .endsWith(“。epub”)并跳过.getName()。 因为fileList数组包含文件名。 –

+0

但我想要那个名字 –