当前位置:首页 > JavaScript

js实现操作文件夹

2026-04-05 01:34:47JavaScript

在浏览器环境中操作文件夹

浏览器中的JavaScript无法直接访问本地文件系统,但可以通过File System Access API实现有限的文件和文件夹操作:

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

// 获取文件夹内文件列表
for await (const entry of dirHandle.values()) {
  console.log(entry.name, entry.kind);
}

// 创建新文件
const fileHandle = await dirHandle.getFileHandle('new.txt', { create: true });
const writable = await fileHandle.createWritable();
await writable.write('Hello World');
await writable.close();

在Node.js环境中操作文件夹

Node.js提供了完整的文件系统操作API:

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

// 创建文件夹
fs.mkdirSync('./new-folder');

// 读取文件夹内容
const files = fs.readdirSync('./folder');
console.log(files);

// 递归创建目录
fs.mkdirSync('./path/to/folder', { recursive: true });

// 使用Promise API
async function processFolder() {
  const files = await fsPromises.readdir('./folder');
  for (const file of files) {
    const stats = await fsPromises.stat(path.join('./folder', file));
    console.log(file, stats.isDirectory() ? 'DIR' : 'FILE');
  }
}

使用第三方库简化操作

chokidar库可以实现文件监控:

const chokidar = require('chokidar');

chokidar.watch('./folder').on('all', (event, path) => {
  console.log(event, path);
});

fs-extra库提供更丰富的API:

const fse = require('fs-extra');

// 复制整个文件夹
fse.copySync('./source', './dest');

// 删除文件夹及其内容
fse.removeSync('./folder-to-delete');

处理文件路径

使用path模块处理跨平台路径问题:

const fullPath = path.join(__dirname, 'folder', 'file.txt');
const ext = path.extname(fullPath);
const dir = path.dirname(fullPath);

注意事项

浏览器环境中的文件系统API需要用户明确授权,且只能在安全上下文(HTTPS或localhost)中使用。

Node.js文件操作有同步和异步两种形式,生产环境推荐使用异步方法避免阻塞事件循环。

js实现操作文件夹

处理用户提供的文件路径时应对路径进行规范化,防止目录遍历攻击。

标签: 文件夹操作
分享给朋友:

相关文章

vue项目操作如何实现

vue项目操作如何实现

Vue 项目基本操作实现 创建 Vue 项目 使用 Vue CLI 快速创建项目: npm install -g @vue/cli vue create project-name cd projec…

mac上如何找到react文件夹

mac上如何找到react文件夹

使用 Finder 搜索 打开 Finder,在顶部菜单栏选择“前往”>“前往文件夹”(或使用快捷键 Command + Shift + G)。输入路径 ~/ 进入用户主目录,手动浏览项目文件夹…

php实现网盘文件夹

php实现网盘文件夹

PHP实现网盘文件夹功能 使用PHP实现网盘文件夹功能需要处理文件上传、目录管理、权限控制等核心模块。以下是具体实现方法: 数据库设计 创建必要的数据库表存储文件和文件夹信息: CREAT…

js实现文件夹目录选择文件

js实现文件夹目录选择文件

使用 <input type="file"> 实现文件选择 通过HTML的<input type="file" webkitdirectory directory multiple&…

js实现文件夹选择器

js实现文件夹选择器

使用 <input type="file"> 实现文件夹选择 在 HTML 中,可以通过 <input type="file" webkitdirectory directory m…

如何创建java文件夹

如何创建java文件夹

使用命令行创建Java文件夹 在命令行或终端中,可以使用mkdir命令创建文件夹。打开命令行工具,导航到希望创建文件夹的目录,执行以下命令: mkdir java 如果需要创建嵌套的文件夹结构(例如…