当前位置:首页 > 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库可以实现文件监控:

js实现操作文件夹

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模块处理跨平台路径问题:

js实现操作文件夹

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

注意事项

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

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

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

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

相关文章

启动react项目如何操作

启动react项目如何操作

安装Node.js 确保系统已安装Node.js(建议版本16+),可通过官网下载或使用版本管理工具(如nvm)。安装完成后,在终端运行 node -v 和 npm -v 验证版本。 创建React…

php实现登录的操作

php实现登录的操作

PHP 登录功能实现 数据库准备 创建用户表存储用户名和密码(密码需加密存储) CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY,…

js实现文件夹效果

js实现文件夹效果

实现文件夹效果的方法 在JavaScript中实现文件夹效果通常涉及模拟文件系统的层级结构,包括文件夹的展开、折叠、拖放等功能。以下是几种常见的实现方式: 使用HTML和CSS构建基础结构 通过嵌套…

如何创建java文件夹

如何创建java文件夹

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

java如何复制文件夹及文件

java如何复制文件夹及文件

使用 Files.copy 方法(Java NIO) Java NIO 的 Files.copy 方法适合复制单个文件或空文件夹。对于非空文件夹,需递归处理子目录和文件。 import java.n…

php实现网盘文件夹

php实现网盘文件夹

PHP实现网盘文件夹功能 数据库设计 创建一个数据库表存储文件夹和文件信息,示例结构如下: CREATE TABLE `files` ( `id` int(11) NOT NULL AUTO_I…