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..!!