当前位置:首页 > JavaScript

js实现文件夹

2026-02-28 22:23:14JavaScript

实现文件夹操作的 JavaScript 方法

在浏览器端的 JavaScript 中,由于安全限制,无法直接操作本地文件系统。但可以通过以下方式模拟或间接实现文件夹操作:

使用 <input type="file"> 选择文件夹

HTML5 提供了 webkitdirectory 属性允许用户选择整个文件夹:

<input type="file" id="folderInput" webkitdirectory>
<script>
  document.getElementById('folderInput').addEventListener('change', function(e) {
    const files = e.target.files;
    console.log(files); // 包含文件夹内所有文件
  });
</script>

Node.js 中的文件夹操作

在 Node.js 环境下可以使用 fs 模块进行完整文件夹操作:

const fs = require('fs');
const path = require('path');

// 创建文件夹
fs.mkdirSync('newFolder');

// 读取文件夹内容
fs.readdirSync('targetFolder').forEach(file => {
  console.log(file);
});

// 递归删除文件夹
function deleteFolderRecursive(path) {
  if (fs.existsSync(path)) {
    fs.readdirSync(path).forEach(file => {
      const curPath = path + '/' + file;
      if (fs.lstatSync(curPath).isDirectory()) {
        deleteFolderRecursive(curPath);
      } else {
        fs.unlinkSync(curPath);
      }
    });
    fs.rmdirSync(path);
  }
}

浏览器端的虚拟文件夹

可以使用第三方库如 browser-fs-access 提供更友好的文件夹访问:

import { fileOpen, directoryOpen } from 'browser-fs-access';

// 打开文件夹
const dirHandle = await directoryOpen({
  recursive: true // 允许递归访问子目录
});

使用 File System Access API

现代浏览器支持 File System Access API 进行更高级操作:

js实现文件夹

// 请求文件夹访问权限
const dirHandle = await window.showDirectoryPicker();

// 遍历文件夹内容
for await (const entry of dirHandle.values()) {
  console.log(entry.kind, entry.name);
}

注意事项

  • 浏览器环境中的文件夹访问需要用户明确授权
  • Node.js 操作需要文件系统权限
  • 生产环境应考虑错误处理和权限检查
  • 不同浏览器对文件夹访问API的支持程度不同

标签: 文件夹js
分享给朋友:

相关文章

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

js jquery

js jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够…

链表实现js

链表实现js

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和一个指向下一个节点的指针(单向链表)或两个指针(双向链表)。与数组不同,链表在内存中非连续存储,插入和删除操作更高效,但随机…

js实现视口

js实现视口

js实现视口检测的方法 使用JavaScript检测元素是否进入视口(viewport)可以通过Intersection Observer API或手动计算元素位置实现。以下是两种常见方法: Int…

js 实现滚动

js 实现滚动

实现滚动的方法 使用 window.scrollTo() window.scrollTo() 方法可以滚动到文档中的特定位置。可以指定 x 和 y 坐标,或者使用平滑滚动的选项。 // 滚动到指定位…

js实现按钮点击

js实现按钮点击

实现按钮点击的JavaScript方法 HTML按钮元素 在HTML中创建按钮元素,为其添加id或class以便JavaScript选择: <button id="myButton">点…