如果我使用 openFileOutput() 创建和写入临时文件,我如何在完成写入后获取文件大小?
原文由 alexl 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果我使用 openFileOutput() 创建和写入临时文件,我如何在完成写入后获取文件大小?
原文由 alexl 发布,翻译遵循 CC BY-SA 4.0 许可协议
将这些添加到某处,然后调用 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"
原文由 Gibolt 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.2k 阅读
8 回答6k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.2k 阅读
2 回答3.9k 阅读
1 回答2.2k 阅读✓ 已解决
我希望这可以帮助你:
其中字符串
selectedPath
是您要确定其文件大小的文件的路径。file.length()
返回文件的字节长度,如 Java 7 文档 中所述:除以 1024 会将大小从字节转换为千比字节。 kibibytes = 1024 字节。