2012-07-13 283 views
0

我的資產結構分爲多個文件夾和文件。當我打開一個文件時,我需要知道是否是文件或文件夾。我需要知道的是如果文件或文件夾正在訪問的資產路徑。[Android資產]:文件或文件夾?

我試圖通過我正在實施的方法來訪問該文件。

public int getFileType (String filepath) 
{ 
    String PACKAGE_APP_NAME = /com/fake/android/app; 
    File f = null; 

    try{ 
     //f = new File(new URI("file:///android_asset/" + JNI_CLASSES + "/" + filepath)); 
     f = new File(new URI("file:///android_asset/" + filepath)); 
    } 
    catch (URISyntaxException e) {} 

    if (f == null) 
    { 
     Log.e("ResListMaker","File Object Is Null"); 
     return -1; 
    } 
    else if (!f.exists()) 
    { 
     Log.e("ResListMaker","File Doesn't Exist"); 
     return -1; 
    } 
    else if (f.isFile()) 
    { 
     Log.e("ResListMaker","Regular File"); 
     return 0; 
    } 
     else if (f.isDirectory()) 
    { 
     Log.e("ResListMaker","Directory"); 
     return 1; 
    } 
    else 
    { 
     Log.e("ResListMaker","Unknown type"); 
     return -1; 
    } 
} 

但總是返回文件不存在。 URI路徑是否正確?有其他方法可以知道資產是文件還是文件夾?

感謝

回答

1

這是訪問您的文件夾中的資產以錯誤的方式。

InputStream is = getAssets().open("subfolder/somefile.txt");

Android Assets with SubFolders

+0

感謝的人。有什麼方法可以知道你打開的路徑是否是一個文件夾? – Hector 2012-07-13 21:48:29

+0

是的,檢查出[列表(somePath)](http://developer.android.com/reference/android/content/res/AssetManager.html#list(java.lang.String)),會給你一個列表您正在查看的目錄中的資產。如果沒有任何返回,那麼它可能是一個目錄。 – hwrdprkns 2012-07-14 20:06:50

+1

我也在檢查文件流的大小,如果他們是0他們是目錄,如果他們不是他們是常規文件。 – Hector 2012-07-16 17:47:39

相關問題