实现目录选择 通过设置 webkitdirectory 属性,允许用户选择目录而非单个文件。适用于基于 Chromium 的浏览器(如 Chr…">
当前位置:首页 > JavaScript

js实现选择目录

2026-04-04 00:11:46JavaScript

使用 <input type="file"> 实现目录选择

通过设置 webkitdirectory 属性,允许用户选择目录而非单个文件。适用于基于 Chromium 的浏览器(如 Chrome、Edge)。

const input = document.createElement('input');
input.type = 'file';
input.webkitdirectory = true;
input.addEventListener('change', (event) => {
  const files = event.target.files;
  console.log('所选目录中的文件列表:', files);
});
document.body.appendChild(input);

使用 File System Access API

现代浏览器支持的 API,可提供更完整的目录交互权限(需用户主动授权)。

async function selectDirectory() {
  try {
    const dirHandle = await window.showDirectoryPicker();
    const files = [];
    for await (const entry of dirHandle.values()) {
      if (entry.kind === 'file') {
        files.push(entry.name);
      }
    }
    console.log('目录内容:', files);
  } catch (err) {
    console.error('用户取消选择或浏览器不支持:', err);
  }
}

Node.js 环境下的目录选择

通过 dialog 模块(Electron 或 Node.js 后端)实现:

js实现选择目录

const { dialog } = require('electron').remote; // Electron 示例
const selectedPaths = dialog.showOpenDialog({
  properties: ['openDirectory']
});
console.log('选择的目录路径:', selectedPaths);

注意事项

  • 浏览器兼容性webkitdirectory 仅部分浏览器支持,File System Access API 需 HTTPS 环境。
  • 权限限制:浏览器无法直接访问本地文件系统,需用户主动触发选择操作。
  • Electron 扩展:在桌面应用中可通过 ipcRenderer 与主进程通信实现更复杂的文件操作。

标签: 目录js
分享给朋友:

相关文章

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callbac…

js实现pdf在线预览

js实现pdf在线预览

使用PDF.js实现PDF在线预览 PDF.js是由Mozilla开发的一个开源JavaScript库,可以在网页中直接渲染PDF文件。以下是实现PDF在线预览的步骤: 引入PDF.js库 在HT…

vue实现树目录

vue实现树目录

vue实现树目录的方法 递归组件实现树形结构 使用递归组件是Vue中实现树形目录的常见方法。通过组件调用自身,可以处理任意层级的嵌套数据。 <template> <div>…

js实现驼峰

js实现驼峰

实现驼峰命名的几种方法 使用正则表达式和字符串替换 通过正则表达式匹配字符串中的特定模式(如下划线或短横线),并将其后的字母转换为大写,同时移除分隔符。 function toCamelCase(s…

js实现下拉菜单

js实现下拉菜单

使用HTML和CSS创建基础结构 HTML部分需要包含一个触发下拉的按钮和隐藏的下拉菜单内容: <div class="dropdown"> <button class="dr…

js实现路由

js实现路由

js实现路由的方法 在JavaScript中实现路由功能可以通过多种方式完成,以下是几种常见的方法: 使用原生JavaScript实现路由 通过监听window.onhashchange事件来实现基…