如何在安卓中获取临时文件的文件大小?

13 浏览
0 Comments

如何在安卓中获取临时文件的文件大小?

使用openFileOutput()创建和写入临时文件后,如何获取文件大小?

0
0 Comments

问题的出现原因:用户想要在Android中获取临时文件的大小。

解决方法:使用下面的代码,通过文件路径和文件名获取文件,并计算文件大小。

代码如下:

// 从文件名获取文件
final String dirPath = f.getAbsolutePath();
String fileName = url.substring(url.lastIndexOf('/') + 1);
File file = new File(dirPath + "/" + fileName);
// 获取文件的字节数
long fileSizeInBytes = file.length();
// 将字节转换为千字节(1 KB = 1024 字节)
long fileSizeInKB = fileSizeInBytes / 1024;
// 将千字节转换为兆字节(1 MB = 1024 KB)
long fileSizeInMB = fileSizeInKB / 1024;
if (fileSizeInMB > 27) {
    ...
}

希望这对你有用!

0
0 Comments

在Android中获取临时文件的文件大小有多种方法,以下是一种使用Kotlin扩展函数的解决方案。首先,在任意位置添加以下代码,并根据需要调用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转换为File对象,可以尝试添加以下代码。

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"

注意使用Uri时应使用Uri.path()而不是Uri.toString()

以上就是在Android中获取临时文件大小的解决方案。通过使用Kotlin扩展函数,我们可以方便地获取文件大小并将其以不同的格式进行显示。根据需要,可以自定义显示的小数位数和单位。

0
0 Comments

在Android中获取临时文件的文件大小是一个常见的需求。要实现这个功能,可以使用以下代码:

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

其中,`selectedPath` 是要确定文件大小的文件的路径。

`file.length()` 方法返回文件的字节大小,参考 Java 7 文档:

> 返回此抽象路径名所表示的文件的长度,以字节为单位,如果文件不存在则返回 0L。有些操作系统可能对表示系统相关实体(如设备或管道)的路径名返回0L。

通过除以 1024 可以将文件大小从字节转换为千字节。1千字节 = 1024字节。

还有一个提示:为了在Android上以易读的方式显示文件大小,可以使用 `Formatter.formatShortFileSize(context, file.length())` 方法。

至于为什么要将千字节大小序列化和反序列化为字符串,这个问题没有给出具体的上下文,无法确定原因和解决方法。

0