首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android 遍歷 res/raw 目錄下資源文件的替代方案:改用 assets 目錄

     編輯:程式設計綜合問答

res/raw 目錄下的資源無法直接在代碼中動態列舉(無法獲取文件名列表)。官方建議:若需遍歷讀取原始文件,請將文件放入 assets 目錄,利用 AssetManager 實現。

assets 目錄遍歷代碼

AssetManager assetManager = getAssets();
try {
    String[] files = assetManager.list(""); // 列出 assets 根目錄文件
    for (String fileName : files) {
        if (fileName.endsWith(".txt")) { // 可按需過濾
            InputStream is = assetManager.open(fileName);
            // 讀取流處理業務邏輯
            is.close();
        }
    }
} catch (IOException e) {
    e.printStackTrace();
}

raw vs assets 選擇指南

特性res/rawassets
編譯時生成 R.id是否
動態列舉文件名不可可
支持子目錄否是
適合場景固定已知資源動態/大量/結構化資源

若必須用 raw 目錄

只能在代碼中硬編碼資源 ID 列表,或通過反射遍歷 R.raw 類字段(不推薦,脆弱且受混淆影響)。

結論:需遍歷讀取時,請毫猶豫選 assets 目錄。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved