2012-03-05 53 views
0

我想列出包含到名爲「子目錄」和正在使用下面的代碼資源的子目錄的文件。但是,如果我設置dirFrom =「」(空),則正確列出資產中的所有文件夾。但是,對於dirFrom =「/ subDir /」,不起作用。我已經嘗試過「subDir /」和相同的結果。有必要聲明清單中的權限?謝謝。Android權限列出資產子目錄文件

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]); 
      } 
     } 

}  
+0

路徑最終應該沒有'/'。你有沒有試過'subdir'? – zapl 2012-03-05 18:21:33

+0

肯定,語法錯誤!謝謝!我無法驗證評論,請將其發佈爲答案 – Jaume 2012-03-05 18:24:59

回答

1

AssetManager.list(String)採用 「資產內的相對路徑」。

的Android /爪哇通常期望路徑具有到底沒有'/'

而且「親屬」是指應該沒有'/'在開始 - 它,否則可能會在你的文件系統的根目錄的路徑。

只需使用"subDir""subDir/subsubDir"會工作。

0

zapl's的答案是正確的,但額外的信息:如果你要複製的文件,例如SD卡,你有一個斜槓來聲明爲InputStream:

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

這是我已經被來自子文件夾的複製文件絆倒了。我最初的計劃是直接從資產文件夾複製文件,這工作,但給了我一些IOExceptions。在資產文件夾中有一些目錄「webkit」,「聲音」,「圖像」和另一個我不記得的內容......但我沒有看到它們。這一定是Android內部的東西,我不明白。但爲了擺脫這種情況,我將文件放在子文件夾中。我知道這是一個古老的線索,但我把這些信息放到這個線程中,只是爲了幫助其他人也遇到類似的問題。