当前位置:首页 > 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 实现操作执行功能的方法 使用 methods 定义方法 在 Vue 组件的 methods 选项中定义需要执行的操作方法。这些方法可以绑定到模板中的事件或直接调用。 export defa…

vue项目操作如何实现

vue项目操作如何实现

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

启动react项目如何操作

启动react项目如何操作

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

react如何操作节点数据

react如何操作节点数据

操作节点数据的常见方法 在React中操作DOM节点数据通常通过ref实现,以下是几种典型场景的解决方案: 使用useRef创建引用 通过useRef钩子创建引用并绑定到DOM元素,后续可直接操…

mac上如何找到react文件夹

mac上如何找到react文件夹

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

php实现文件读写操作

php实现文件读写操作

文件读取操作 使用file_get_contents函数可以快速读取整个文件内容到一个字符串中。适合读取小文件,简单高效。 $content = file_get_contents('example…