2013-02-02 110 views

回答

5

你可以只嘗試打開該流,如果它失敗的文件不存在,如果它沒有失敗的文件應該有:

/** 
* 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; 
} 
+1

如果路徑以'file:/// android_asset /'開頭,則重寫如下: final String ASSET_PATH =「file:/// android_asset /」; String filePath = path.replaceFirst(ASSET_PATH,「」); InputStream stream = context.getAssets()。open(filePath); – CoolMind

+0

注意:註釋中的零件不適用於目錄。 – kaay

0

[Android Assets]: File or Folder?

How to get all files from assets folder

File f=new File("file:///android_asset/"); 
    File[] files=f.listFiles(); 

並且如果文件返回空洞穴你明白文件夾是空的。

+0

我正在使用「Arrays.asList(getResources()。getAssets().list(」「))。contains(filename)」這個代碼來檢查資產文件夾中的文件。我如何檢查資產子目錄中的文件。不需要像在列表(「」)方法中指定文件夾名稱那樣進行硬編碼。 – Karthick

+0

它很容易一旦你使用getResources()。getAssets()這之後dat你知道多少文件夾你有資產文件夾你可以使用循環的文件夾長度den你可以檢查多少文件的文件夾如果它不是空的使用遞歸函數或再次調用,如果文件夾有子文件夾) – duggu

+0

雅,我正在獲取文件夾列表,但面臨難以將其轉換爲文件或目錄。 「列表 list = Arrays.asList(getResources()。getAssets().list(」「))」。我正在使用它來列出目錄。我如何將其轉換爲文件。? – Karthick

相關問題