在日常开发中,我们经常需要处理文件大小,并将其以更易读的格式展示给用户。本文将介绍如何使用 JavaScript 来格式化文件大小,并展示了常用的单位。

文件大小格式化函数

我们可以使用以下函数将字节数转换为更友好的格式:

1
2
3
4
5
6
7
8
9
10
function formatFileSize(bytes) {
if (bytes === 0) return "0 Bytes";
const sizes = ["Bytes", "KB", "MB", "GB", "TB"];
const i = Math.floor(Math.log(bytes) / Math.log(1024));
return parseFloat((bytes / Math.pow(1024, i)).toFixed(2)) + " " + sizes[i];
}

console.log(formatFileSize(1024)); // 输出: "1 KB"
console.log(formatFileSize(1048576)); // 输出: "1 MB"
console.log(formatFileSize(1073741824)); // 输出: "1 GB"

格式化为指定单位

如果你希望将文件大小格式化为指定的单位,可以稍作修改:

1
2
3
4
5
6
7
8
9
10
function formatFileSize(bytes, unit) {
const sizes = ["Bytes", "KB", "MB", "GB", "TB"];
const index = sizes.indexOf(unit);
if (index === -1) throw new Error("Invalid unit");

return parseFloat((bytes / Math.pow(1024, index)).toFixed(2)) + " " + unit;
}

console.log(formatFileSize(2048, "KB")); // 输出: "2 KB"
console.log(formatFileSize(1048576, "MB")); // 输出: "1 MB"