当前位置:首页 > 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 进行更高级操作:

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

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

注意事项

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

js实现文件夹

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

相关文章

js 实现vue

js 实现vue

实现 Vue 的核心功能 在 JavaScript 中实现 Vue 的核心功能需要模拟数据绑定、虚拟 DOM 和响应式系统。以下是一个简化版的实现思路: 响应式系统 通过 Object.define…

js实现复制

js实现复制

使用document.execCommand方法 在较旧的浏览器中,可以使用document.execCommand('copy')实现复制功能。创建一个临时的textarea或input元素,将需要…

js实现图片放大缩小

js实现图片放大缩小

实现图片放大缩小的基础方法 使用CSS的transform: scale()属性可以快速实现图片的放大缩小效果。通过JavaScript动态修改该属性值: const img = document…

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounc…

js实现pdf在线预览

js实现pdf在线预览

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

jquery js

jquery js

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