2011-03-10 11 views
17

Duplicar posible:
Android: Get the size of a file in resources?Android Uri a FileSize

Quiero cargar un archivo en un servidor web. Para mostrar el progreso de la carga, necesito saber el tamaño completo del archivo. Como solo tengo el Uri del archivo (lo obtuve de un Intento), no tengo oportunidad de obtener el tamaño del archivo. Mi solución es abrir un InputStream y contar los bytes que se leen en este InputStream. Pero esto es tortuoso. ¿Hay una manera más fácil/convencional de resolver este problema?

Gracias

+0

I optado por cerrar éste como un duplicado en lugar de la otra, ya que el duplicado vinculado tiene una respuesta aceptada y esto aquí no, aunque esta pregunta fue hecha en el tiempo primero. –

+0

Habría sido útil incluir un enlace al duplicado para que los futuros espectadores no se vean obligados a buscar ahora una variación de esta pregunta cuando terminen aquí primero. – LoungeKatt

+3

@ LasseV.Karlsen La pregunta vinculada está específicamente relacionada con los recursos (como en R.drawables, etc.), no solo con los archivos de un Intento. Es bastante diferente. –

Respuesta

16

Usted puede obtener el tamaño del archivo en bytes de este modo:

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

El archivo espera java.net.URI, pero tengo andorid.net.Uri – Soccertrash

+2

Esta publicación SO muestra cómo convertir entre los dos: http://stackoverflow.com/questions/559902/android-how-can-i-convert -android-net-uri-object-to-java-net-uri-object/560006 # 560006 –

Cuestiones relacionadas