我想檢查/ assets /文件夾中是否存在文件。 我該怎麼辦?請幫忙。如何檢查Android資源資源?
10
A
回答
4
你必須執行自己的檢查。據我所知,這項工作沒有辦法。
4
您可以使用Resources.openRawResourceFd(INT渣油)
http://developer.android.com/reference/android/content/res/Resources.html#openRawResourceFd%28int%29
13
我在我的一個應用程序類中添加了一個輔助方法。我假設;
- 資產列表在應用程序運行時不會更改。
List<String>
不是內存豬(我的應用程序中只有78個資產)。- 檢查列表上的exists()比試圖打開一個文件並處理異常(我沒有實際分析過這個)要快。
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); }
+6
'List.contains()'已經返回布爾值,不需要函數結尾的三元表達式。 – 2012-08-11 00:55:23
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;
}
+0
該解決方案要快得多,然後將整個資產的文件夾作爲列表,並檢查包容。 (我在我的設備上測量了〜50ms vs〜800ms) – azendh 2014-08-01 19:54:34
相關問題
- 1. 資源檢查
- 2. 如何檢查Azure資源的資源刪除操作結果
- 3. Android:檢查背景資源可繪製
- 4. 檢查OpenGL資源泄漏
- 5. 檢查/比較imagebutton資源
- 6. 檢查嵌套資源
- 7. 如何檢查資源是否存在?
- 8. Android資源$ NotFoundException:資源ID#0x0問題
- 9. 資源內置Android資源中的$ NotFoundException?
- 10. 的Android資源$ NotFoundException:資源ID#0x7f020052
- 11. Android HTML資源引用其他資源
- 12. Android:Howto獲取Android資源的資源ID
- 13. 資源與資源
- 14. Android:查看資源ID?
- 15. 的Android查找資源
- 16. android apk資源
- 17. Android資源
- 18. Android:資源$ NotFoundException
- 19. 檢查xml中的資源並顯示android中的資源的圖標
- 20. 如何在C#中查找資源(pinvoke)字符串資源?
- 21. 資源$ NotFoundException:資源ID#0x7f08005e
- 22. 的Android資源ID
- 23. Android資源管理
- 24. Intellij android資源gen
- 25. MYSQL資源查詢
- 26. 如何從資源
- 27. 從nl.siegmann.epublib獲取資源的位圖資源加載資源
- 28. 檢查返回值的資源是空
- 29. 螞蟻資源存在檢查
- 30. 檢查訪問哪些帳戶資源
我也這麼認爲。謝謝。 – Mudassir 2010-12-13 08:45:54
可以理解,這可能沒有辦法,但如果你不能提供替代方案,那麼這不應該是一個答案。 – Gowiem 2012-06-06 16:30:17