2011-03-10 38 views
17

可能重複:
Android: Get the size of a file in resources?Android的開放的,以文件大小

我想將文件上傳到網絡服務器。爲了顯示上傳的進度,我需要知道文件的完整大小。由於我只有文件的Uri(從Intent中獲得),所以我沒有機會查看文件的大小。我的解決方法是打開一個InputStream並計算在此InputStream上讀取的字節數。但這是迂迴的。有沒有更簡單/常規的方法來解決這個問題?

感謝

+0

我選擇關閉這個作爲重複的,而不是另外一個,因爲鏈接的副本有一個公認的答案這裏沒有,儘管在時間上這個問題首先被問到。 – 2012-03-21 09:44:47

+0

如果在複製中包含鏈接,將會非常有用,因此未來的觀衆不會被迫現在先搜索這個問題的變體。 – LoungeKatt 2012-09-02 11:34:45

+3

@ LasseV.Karlsen鏈接的問題與資源(如在R.drawables等)中具體相關,而不僅僅是來自Intent的文件。這是非常不同的。 – 2014-07-25 16:11:16

回答

16

您可以以字節爲單位獲取文件的大小這樣的:

File f = new File(uri.getPath()); 
long size = f.length(); 
+0

文件需要java.net.URI,但我有andorid.net.Uri – Soccertrash 2011-03-10 18:01:47

+2

這個SO帖子展示瞭如何在兩者之間進行轉換:http://stackoverflow.com/questions/559902/android-how-can-i-convert -Android淨URI的對象到Java淨URI的對象/ 560006#560006 – 2011-10-05 19:33:33