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"
// 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) {
...
}
6条答案
按热度按时间iyr7buue1#
我希望这能帮助你:
其中字符串
selectedPath
是要确定其文件大小的文件的路径。file.length()
以字节为单位返回文件的长度,如Java 7文档中所述:返回此抽象路径名所表示的文件的长度(以字节为单位),如果文件不存在,则返回0L。某些操作系统可能会为表示依赖于系统的实体(如设备或管道)的路径名返回0L。
除以1024将大小从字节转换为kibibytes。kibibytes = 1024字节。
ih99xse12#
Kotlin扩展解决方案
将它们添加到某处,然后调用
myFile.sizeInMb
或任何您需要的函数如果需要String或Uri中的文件,请尝试添加以下内容
如果你想轻松地将值显示为字符串,这些都是简单的 Package 器。
bcs8qyzn3#
尝试使用下面的代码:
希望它能为你工作!!
sdnqo3pr4#
你也可以使用这个函数,我用这个函数来检查文件大小是否小于2MB,当你使用file.lenght函数时,它返回文件大小的字节数,所以我用字节数来检查文件大小。
sbtkgmzw5#
以上所有代码都有一个小问题,因为file.length()没有返回文件的确切大小。为了解决这个问题,我尝试了多种方法,过了一段时间我得到了修复。下面的代码可以让你得到文件的确切大小。
注意,对于字节到KB的转换,我除以了1000.0而不是1024.0。这对我来说很有效。
mkh04yzy6#
对于Kotlin开发人员,只需使用这行
为了便于讨论,假设我们要将9.2四舍五入到最接近的整数。我们可以将它加上0.5,这将给予9.7。当我们对它使用math.floor时,它将向下舍入,我们将得到9。现在,假设我们要将9.9四舍五入到最接近的整数,我们将向它加上0.5,这将得到10.4,当我们对它使用math.floor时,它将返回10