我想獲取資產目錄中文件的文件大小。我看到很多例子像有沒有辦法從android資產文件夾中將文件作爲File對象打開?
InputStream myInput = appContext.getAssets().open()
我知道我可以通過簡單的閱讀InputStream
在週期確定文件大小,但我在尋找一種方式通過File object
做到這一點。
所以我需要一個資產的路徑,多數民衆贊成我無法確定的事情......如何獲得這條路徑?
也嘗試通過appContext.getAssets().openFd()
和openNonAssetFd()
AssetFileDescriptor
但沒有運氣 - 得到FileNotFound
或可能壓縮的異常。
順便說一下,這些openFd方法在developer.android.com上是「非常漂亮的」。
我嘗試下一個代碼:
file = new File(new URI("file:///android_asset/db/call3.db"));
Log.i(APP_TAG, "File name: "+file.getName());
Log.i(APP_TAG, "File path: "+file.getPath());
Log.i(APP_TAG, "File length: "+file.length());
Log.i(APP_TAG, "File isFile: "+file.isFile());
Log.i(APP_TAG, "File exists: "+file.exists());
其輸出登錄:
12月4日至13日:10:03.413:INFO(6259):文件名:call3.db
12月4日至13日: 10:03.432:INFO(6259):文件路徑:/android_asset/db/call3.db
04-13 12:10:03.444:INFO(6259):文件長度:0
04-13 12:10:03.444 :INFO(6259):文件isFile:false
04-13 12:10:03.444:INFO(6259):文件存在:false
當然文件大小不是0它是195 584字節。
好的。那麼appContext.getAssets()。openFd()/ openNonAssetFd()呢?它是什麼以及它爲什麼不起作用? – Stan 2011-04-14 06:09:50
有史以來最令人心碎的答案,但確實如此。 – 2012-10-22 09:38:45