当前位置:首页 > JavaScript

js实现操作文件夹

2026-01-31 09:31:45JavaScript

使用Node.js操作文件夹

Node.js内置的fs模块提供文件系统操作功能,可以创建、读取、删除文件夹。以下是常用方法:

安装Node.js 确保已安装Node.js环境,官网下载安装包进行安装。

引入fs模块

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

创建文件夹

使用fs.mkdirfs.mkdirSync(同步版本):

js实现操作文件夹

// 异步创建
fs.mkdir('./newFolder', (err) => {
  if (err) throw err;
  console.log('文件夹创建成功');
});

// 同步创建
try {
  fs.mkdirSync('./syncFolder');
  console.log('同步创建成功');
} catch (err) {
  console.error(err);
}

递归创建多级目录

使用recursive: true选项:

fs.mkdir('./parent/child/grandchild', { recursive: true }, (err) => {
  if (err) throw err;
});

读取文件夹内容

通过fs.readdir获取文件列表:

js实现操作文件夹

fs.readdir('./targetFolder', (err, files) => {
  if (err) throw err;
  files.forEach(file => {
    console.log(file);
  });
});

删除文件夹

使用fs.rmdir(空目录)或fs.rm(Node.js v14.4+支持递归删除):

// 删除空目录
fs.rmdir('./emptyFolder', (err) => {
  if (err) throw err;
});

// 递归删除(包括非空目录)
fs.rm('./nonEmptyFolder', { recursive: true }, (err) => {
  if (err) throw err;
});

检查文件夹是否存在

fs.access('./checkFolder', fs.constants.F_OK, (err) => {
  console.log(err ? '不存在' : '存在');
});

路径拼接与解析

使用path模块处理路径:

const fullPath = path.join(__dirname, 'subfolder', 'file.txt');
const dirName = path.dirname(fullPath); // 获取目录名

遍历文件夹(递归示例)

function traverseDir(dir) {
  fs.readdirSync(dir).forEach(file => {
    let fullPath = path.join(dir, file);
    if (fs.statSync(fullPath).isDirectory()) {
      traverseDir(fullPath); // 递归子目录
    } else {
      console.log(fullPath);
    }
  });
}
traverseDir('./startFolder');

注意事项

  1. 异步方法推荐配合async/await使用
  2. 操作前应检查权限和路径有效性
  3. Windows和Unix路径差异需注意
  4. 批量操作建议使用Promise.all处理

完整示例(创建并写入文件)

const folderPath = './data/logs';
if (!fs.existsSync(folderPath)) {
  fs.mkdirSync(folderPath, { recursive: true });
}
fs.writeFileSync(path.join(folderPath, 'app.log'), 'Log content');

对于更复杂的文件操作,可考虑使用第三方库如:

  • fs-extra(增强版fs)
  • glob(模式匹配文件搜索)
  • chokidar(文件监视)

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

相关文章

vue 实现选题操作

vue 实现选题操作

实现选题操作的基本思路 在Vue中实现选题操作通常涉及数据绑定、事件处理和状态管理。通过v-model或自定义事件实现选项的选择与反选,结合计算属性或方法动态更新选中状态。 单选功能实现 使用v-m…

vue实现操作权限

vue实现操作权限

Vue 实现操作权限的方法 使用自定义指令 在 Vue 中可以通过自定义指令来实现操作权限控制。创建一个指令,检查用户是否有权限执行某个操作。 // 注册全局指令 Vue.directive('pe…

启动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实现文件夹目录选择文件

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

js实现操作

js实现操作

JavaScript 实现操作的方法 JavaScript 提供了多种方式来实现操作,包括 DOM 操作、事件处理、异步编程等。以下是几种常见操作的实现方法。 DOM 操作 通过 JavaScrip…