Saltar al contenido

¿Cómo obtengo el tamaño de archivo del archivo temporal en Android?

Verificamos cada tutorial de nuestra página web con el objetivo de enseñarte siempre la información con la mayor veracidad y certera.

Solución:

Espero que esto pueda ayudarte:

    File file = new File(selectedPath);
    int file_size = Integer.parseInt(String.valueOf(file.length()/1024));

donde la cuerda selectedPath es la ruta al archivo cuyo tamaño de archivo desea determinar.

file.length() devuelve la longitud del archivo en bytes, como se describe en la documentación de Java 7:

Devuelve la longitud, en bytes, del archivo indicado por este nombre de ruta abstracto, o 0L si el archivo no existe. Algunos sistemas operativos pueden devolver 0L para nombres de ruta que denotan entidades dependientes del sistema, como dispositivos o conductos.

Dividir por 1024 convierte el tamaño de bytes a kibibytes. kibibytes = 1024 bytes.

Solución de extensión de Kotlin

Agregue estos en algún lugar, luego llame myFile.sizeInMb o lo que necesites

val File.size get() = if (!exists()) 0.0 else length().toDouble()
val File.sizeInKb get() = size / 1024
val File.sizeInMb get() = sizeInKb / 1024
val File.sizeInGb get() = sizeInMb / 1024
val File.sizeInTb get() = sizeInGb / 1024

Si necesita un archivo de una cadena o Uri, intente agregar estos

fun Uri.asFile(): File = File(toString())

fun String?.asUri(): Uri? 
    try 
        return Uri.parse(this)
     catch (e: Exception) 
    
    return null

Si desea mostrar fácilmente los valores como un string, estos son envoltorios simples. Siéntase libre de personalizar los decimales predeterminados que se muestran

fun File.sizeStr(): String = size.toString()
fun File.sizeStrInKb(decimals: Int = 0): String = "%.$decimalsf".format(sizeInKb)
fun File.sizeStrInMb(decimals: Int = 0): String = "%.$decimalsf".format(sizeInMb)
fun File.sizeStrInGb(decimals: Int = 0): String = "%.$decimalsf".format(sizeInGb)

fun File.sizeStrWithBytes(): String = sizeStr() + "b"
fun File.sizeStrWithKb(decimals: Int = 0): String = sizeStrInKb(decimals) + "Kb"
fun File.sizeStrWithMb(decimals: Int = 0): String = sizeStrInMb(decimals) + "Mb"
fun File.sizeStrWithGb(decimals: Int = 0): String = sizeStrInGb(decimals) + "Gb"

Intenta usar el siguiente código:

// Get file from file name
    final String dirPath = f.getAbsolutePath();
    String fileName = url.substring(url.lastIndexOf('/') + 1);
    File file = new File(dirPath + "/" + fileName);

      // Get length of file in bytes
          long fileSizeInBytes = file.length();
     // Convert the bytes to Kilobytes (1 KB = 1024 Bytes)
          long fileSizeInKB = fileSizeInBytes / 1024;
    //  Convert the KB to MegaBytes (1 MB = 1024 KBytes)
          long fileSizeInMB = fileSizeInKB / 1024;

          if (fileSizeInMB > 27) 
          ...
          

Espero que te funcione..!!

Valoraciones y reseñas

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *