2011-03-10 24 views
17

Olası Çoğalt Filesize için: Bir WebSunucusu'nu bir dosya yüklemek istediğiniz
Android: Get the size of a file in resources?Android Uri

. Yüklemenin ilerleyişini göstermek için dosyanın tam boyutunu bilmem gerekiyor. Dosyanın Uri'sine sahip olduğumdan (bir Niyet'ten aldım), dosya boyutuna ulaşma şansım yok. Benim geçici çözümüm bir InputStream açmak ve bu InputStream üzerinde okunan baytları saymaktır. Ama bu dolambaçlı. Bu sorunu çözmek için daha kolay/geleneksel bir yolu var mı?

Teşekkür

+0

bağlantılı yinelenen kabul edilen bir cevabı var çünkü ben yerine diğerinin tekrarı olarak bu bir kapatma seçti ve bu, zaman-bu soruya ilk sorulmuş olsa bile, burada değil. –

+0

Çoğaltmaya bir bağlantı eklemek yararlı olurdu, böylece gelecekteki görüntüleyenler, ilk önce burada sona erdiğinde bu sorunun bir varyasyonunu aramak zorunda kalmazlar. – LoungeKatt

+3

@ LasseV.Karlsen Bağlantılı soru, yalnızca bir Niyet'ten gelen dosyalar değil, kaynaklar (R.drawables'da olduğu gibi) ile ilgilidir. Oldukça farklı. –

cevap

16

Böylece bayt cinsinden dosyanın boyutunu alabilirsiniz:

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

Dosya, java.net.URI bekliyor, ama ben var veorid.net.Uri – Soccertrash

+2

Bu SO posta, iki arasında nasıl dönüştürüleceğini gösterir: http://stackoverflow.com/questions/559902/android-how-can-i-convert -Android net uri-nesne-java-ağ-uri nesne/560.006 # 560.006 –