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

本地HTML如何读取目录文件名生成Javascript数组

本地HTML扫描文件夹获取文件名存入JS数组实现方案

受浏览器安全沙箱限制,本地运行的纯前端HTML无法无交互直接访问你电脑上任意指定路径的文件夹,必须由用户主动触发选择、授权目标文件夹访问权限后,才能遍历读取内部文件信息,以下是两种可直接落地的实现方式:

  • 方案1:File System Access API(现代浏览器推荐)
    适配Chrome/Edge 86+、Firefox 111+等新版本浏览器,支持记住授权状态,下次打开无需重复选择文件夹,可直接运行的示例代码:

    <!DOCTYPE html>
    <html>
    <body>
      <button id="pickDir">选择Videos文件夹</button>
      <script>
        let videoFileNames = []
        document.getElementById('pickDir').addEventListener('click', async () => {
          // 唤起系统文件夹选择弹窗
          const dirHandle = await window.showDirectoryPicker()
          videoFileNames = []
          // 遍历文件夹内所有条目
          for await (const entry of dirHandle.values()) {
            // 仅收集文件,跳过子文件夹
            if (entry.kind === 'file') {
              videoFileNames.push(entry.name)
            }
          }
          // 此时videoFileNames就是你需要的数组,示例场景下值为["VideoA.mp4", "VideoB.mp4"]
          console.log(videoFileNames)
        })
      </script>
    </body>
    </html>
    

    代码保存为本地HTML文件打开后,点击按钮选中你的Videos文件夹,即可在控制台拿到对应数组,数组索引顺序和系统文件夹内文件默认排序一致。

  • 方案2:原生文件选择控件(兼容旧版浏览器)
    基于input[type=file]的文件夹选择能力实现,兼容几乎所有主流浏览器版本,示例代码:

    <!DOCTYPE html>
    <html>
    <body>
      <input type="file" id="dirInput" webkitdirectory directory multiple>
      <script>
        let videoFileNames = []
        document.getElementById('dirInput').addEventListener('change', (e) => {
          videoFileNames = []
          const fileList = e.target.files
          for (let file of fileList) {
            // 跳过子文件夹内的文件,仅保留根目录文件
            if (!file.webkitRelativePath.includes('/')) {
              videoFileNames.push(file.name)
            }
          }
          console.log(videoFileNames)
        })
      </script>
    </body>
    </html>
    

重要提示:所有纯前端方案都必须经过用户手动选择文件夹的授权步骤,这是浏览器强制的安全规则,不存在可绕过的方法。如果需要无交互自动读取固定路径的文件夹,属于本地脚本能力范畴,需要搭配Node.js等本地运行环境实现,纯浏览器端HTML无法做到。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 14:27:18