You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JS从指定文件路径获取文件大小?

获取指定路径文件大小的JavaScript实现方法

JavaScript获取文件大小的实现方式取决于运行环境,以下分两种场景说明:

1. Node.js环境(服务器/本地脚本)

Node.js可以通过内置的fs模块直接读取文件的元信息,从而获取文件大小。提供同步、异步回调、Promise三种实现方式:

同步方式(适合简单脚本)

const fs = require('fs');

try {
  // 获取文件状态信息
  const stats = fs.statSync('my-path/filename');
  // stats.size 返回文件大小(单位:字节)
  const fileSizeBytes = stats.size;
  
  // 转换为更易读的单位(可选)
  const fileSizeKB = (fileSizeBytes / 1024).toFixed(2);
  const fileSizeMB = (fileSizeBytes / (1024 * 1024)).toFixed(2);
  
  console.log(`文件大小:${fileSizeBytes} 字节 | ${fileSizeKB} KB | ${fileSizeMB} MB`);
} catch (error) {
  console.error('读取文件大小失败:', error.message);
}

异步回调方式(避免阻塞主线程)

const fs = require('fs');

fs.stat('my-path/filename', (error, stats) => {
  if (error) {
    console.error('读取文件大小失败:', error.message);
    return;
  }
  
  const fileSizeBytes = stats.size;
  const fileSizeKB = (fileSizeBytes / 1024).toFixed(2);
  const fileSizeMB = (fileSizeBytes / (1024 * 1024)).toFixed(2);
  
  console.log(`文件大小:${fileSizeBytes} 字节 | ${fileSizeKB} KB | ${fileSizeMB} MB`);
});

Promise/Async-Await方式(现代异步写法)

const fs = require('fs').promises;

async function getFileSize() {
  try {
    const stats = await fs.stat('my-path/filename');
    const fileSizeBytes = stats.size;
    
    const fileSizeKB = (fileSizeBytes / 1024).toFixed(2);
    const fileSizeMB = (fileSizeBytes / (1024 * 1024)).toFixed(2);
    
    console.log(`文件大小:${fileSizeBytes} 字节 | ${fileSizeKB} KB | ${fileSizeMB} MB`);
  } catch (error) {
    console.error('读取文件大小失败:', error.message);
  }
}

// 调用函数
getFileSize();

2. 浏览器环境

浏览器出于安全限制,无法直接访问本地指定路径的文件,必须由用户主动通过文件选择器上传文件,再通过File对象的size属性获取大小:

<!-- 文件选择器 -->
<input type="file" id="filePicker">

<script>
document.getElementById('filePicker').addEventListener('change', (event) => {
  // 获取用户选择的第一个文件
  const selectedFile = event.target.files[0];
  if (!selectedFile) return;
  
  const fileSizeBytes = selectedFile.size;
  const fileSizeKB = (fileSizeBytes / 1024).toFixed(2);
  const fileSizeMB = (fileSizeBytes / (1024 * 1024)).toFixed(2);
  
  console.log(`文件大小:${fileSizeBytes} 字节 | ${fileSizeKB} KB | ${fileSizeMB} MB`);
});
</script>

内容的提问来源于stack exchange,提问作者Saeid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 22:10:36