我如何在Android中获取临时文件的文件大小?
如果我使用 openFileOutput() 创建并写入临时文件,那么在完成写入后如何获取文件大小?
如果我使用 openFileOutput() 创建并写入临时文件,那么在完成写入后如何获取文件大小?
我希望这可以帮助你:
File file = new File(selectedPath);
int file_size = Integer.parseInt(String.valueOf(file.length()/1024));
其中 String 是要确定其文件大小的文件的路径。selectedPath
file.length()
返回文件的长度(以字节为单位),如 Java 7 文档中所述:
返回由此抽象路径名表示的文件的长度(以字节为单位),如果文件不存在,则返回 0L。某些操作系统可能会返回 0L 作为表示依赖于系统的实体(如设备或管道)的路径名。
除以 1024 会将大小从字节转换为千字节。千字节 = 1024 字节。
将这些添加到某个位置,然后致电或您需要的任何位置myFile.sizeInMb
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
如果需要来自字符串或 Uri 的文件,请尝试添加这些
fun Uri.asFile(): File = File(toString())
fun String?.asUri(): Uri? {
try {
return Uri.parse(this)
} catch (e: Exception) {
}
return null
}
如果要轻松地将值显示为字符串,这些是简单的包装器。随意自定义显示的默认小数
fun File.sizeStr(): String = size.toString()
fun File.sizeStrInKb(decimals: Int = 0): String = "%.${decimals}f".format(sizeInKb)
fun File.sizeStrInMb(decimals: Int = 0): String = "%.${decimals}f".format(sizeInMb)
fun File.sizeStrInGb(decimals: Int = 0): String = "%.${decimals}f".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"