如何查看Android资源资源?

时间:2010-11-11 10:07:09

标签: android resources assets

我想检查/ assets /文件夹中是否存在文件。 我怎么能这样做?请帮忙。

4 个答案:

答案 0 :(得分:13)

我在其中一个应用程序类中添加了一个辅助方法。我假设了;

  1. 应用程序运行时资产列表不会更改。
  2. List<String>不是内存耗费(我的应用中只有78个资产)。
  3. 检查List上的exists()比尝试打开文件并处理异常更快(我实际上没有对此进行分析)。
  4. AssetManager am;
    List<String> mapList;
    
    /**
     * Checks if an asset exists.
     *
     * @param assetName
     * @return boolean - true if there is an asset with that name.
     */
    public boolean checkIfInAssets(String assetName) {
        if (mapList == null) {
            am = getAssets();
            try {
                mapList = Arrays.asList(am.list(""));
            } catch (IOException e) {
            }
        }
        return mapList.contains(assetName);
    }
    

答案 1 :(得分:9)

您也可以尝试打开流,如果失败则文件不存在,如果没有失败,文件应该在那里:

/**
 * Check if an asset exists. This will fail if the asset has a size < 1 byte.
 * @param context
 * @param path
 * @return TRUE if the asset exists and FALSE otherwise
 */
public static boolean assetExists(Context context, String path) {
    boolean bAssetOk = false;
    try {
        InputStream stream = context.getAssets().open(ASSET_BASE_PATH + path);
        stream.close();
        bAssetOk = true;
    } catch (FileNotFoundException e) {
        Log.w("IOUtilities", "assetExists failed: "+e.toString());
    } catch (IOException e) {
        Log.w("IOUtilities", "assetExists failed: "+e.toString());
    }
    return bAssetOk;
}

答案 2 :(得分:4)

答案 3 :(得分:4)

您必须执行自己的检查。据我所知,这项工作没有办法。