当前位置: 首页 > article >正文

【Node.js入门笔记4---fs 目录操作】

Node.js入门笔记4

  • Node.js---fs 目录操作
  • 一、目录操作
    • 1.fs.mkdir():创建目录。异步,非阻塞。
      • 创建单个目录
      • 创建多个目录
      • 创建目前之前需要确认是否存在:
    • 2. fs.mkdirSync():用于创建一个新的目录。异步,非阻塞。
    • 3.fs.rmdir():删除空目录。异步。
    • 4. fs.rmdirSync():删除空目录。同步。
    • 5. fs.rm()(Node.js 14.4+):递归删除目录及内容。
    • 6. fs.readdir():获取目录下的文件和子目录列表。

Node.js—fs 目录操作

一、目录操作

1.fs.mkdir():创建目录。异步,非阻塞。

语法格式:

fs.mkdir(path,[options] ,callback)

参数解读:
参数1:必选参数,字符串,表示要创建的目录的路径。
参数2:可选参数,表示以什么编码格式来读取文件。
参数3:必选参数,文件读取完成后,通过回调函数拿到读取的结果。

创建单个目录


const fs = require('fs');

fs.mkdir('./new-directory', (err) => {
    if (err) throw err;
    console.log('目录创建成功');
  });

写完代码后,需要在terminal控制台输入指令:node 【 js文件的路径】

node C:\Users\Administrator\Desktop\learning\mkdir.js

如图:
node截图
然后电脑找到这个目录:C:\Users\Administrator\new-directory

node

创建多个目录

const fs = require('fs');

// 创建多个目录
fs.mkdir('./new-directory/new-sub-directory', { recursive: true }, (err) => {
    if (err) throw err;
    console.log('目录创建成功');
});

写完代码后,需要在terminal控制台输入指令:node 【 js文件的路径】

node C:\Users\Administrator\Desktop\learning\mkdir.js

结果:C:\Users\Administrator\new-directory
node截图

创建目前之前需要确认是否存在:

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

const dir = 'myDir';

if (!fs.existsSync(dir)) {
  fs.mkdir(dir, (err) => {
    if (err) throw err;
    console.log('目录创建成功');
  });
} else {
  console.log('目录已存在');
}
写完代码后,需要在terminal控制台输入指令:node 【 js文件的路径】

```bash
node C:\Users\Administrator\Desktop\mkdir.js

2. fs.mkdirSync():用于创建一个新的目录。异步,非阻塞。

语法格式

fs.mkdirSync(path[, options])

参数解读:
参数1:必选参数,需要指定一个文件路径的字符串,表示文件的存放路径
参数2:必选参数,表示要写入的内容。

创建单个目录

const fs = require('fs');

try {
    // 创建一个名为 'newDir' 的目录
    fs.mkdirSync('newDir');
    console.log('目录创建成功');
} catch (err) {
    if (err.code === 'EEXIST') {
        console.log('目录已经存在');
    } else {
        console.error('创建目录时出错:', err);
    }
}

写完代码后,需要在terminal控制台输入指令:node 【 js文件的路径】

node C:\Users\Administrator\Desktop\mkdirSync.js

结果如图:C:\Users\Administrator\newDir
在这里插入图片描述
创建多个目录

const fs = require('fs');

try {
    // 递归创建一个嵌套目录 'parent/child/grandchild'
    fs.mkdirSync('parent/child/grandchild', { recursive: true });
    console.log('目录递归创建成功');
} catch (err) {
    console.error('创建目录时出错:', err);
}

写完代码后,需要在terminal控制台输入指令:node 【 js文件的路径】

node C:\Users\Administrator\Desktop\mkdirSync.js

3.fs.rmdir():删除空目录。异步。

语法格式:

fs.rmdir(path[, options], callback)

参数解读:
参数1:必选参数,需要指定一个文件路径的字符串,表示要删除的路径。
参数2:可选参数,默认为 false。
参数3:必选参数,回调函数。

// 1.导入fs模块
const fs = require('fs');

// 要删除的目录路径
const dirPath = './test';

fs.rmdir(dirPath, (err) => {
    if (err) {
        if (err.code === 'ENOENT') {
            console.log('目录不存在');
        } else if (err.code === 'ENOTEMPTY') {
            console.log('目录不为空,无法删除');
        } else {
            console.error('删除目录时出错:', err);
        }
    } else {
        console.log('目录删除成功');
    }
});

写完代码后,需要在terminal控制台输入指令:node 【 js文件的路径】

node C:\Users\Administrator\Desktop\learning\rmdir.js

4. fs.rmdirSync():删除空目录。同步。

语法格式:

fs.rmdirSync(path[, options])

参数解读:
参数1:必选参数,文件夹路径
参数2:可选参数,options对象或编码字符串

同步进行的就不能用回调函数观察数据是否成功,所有用try catch来捕获问题

const fs = require('fs');

// 要删除的目录路径
const dirPath = 'emptyDir';

try {
    fs.rmdirSync(dirPath);
    console.log('目录删除成功');
} catch (err) {
    if (err.code === 'ENOENT') {
        console.log('目录不存在');
    } else if (err.code === 'ENOTEMPTY') {
        console.log('目录不为空,无法删除');
    } else {
        console.error('删除目录时出错:', err);
    }
}

写完代码后,需要在terminal控制台输入指令:node 【 js文件的路径】

node C:\Users\Administrator\Desktop\rmdirSync.js

5. fs.rm()(Node.js 14.4+):递归删除目录及内容。

语法格式:

fs.rm(path, options, callback);

删除单个文件

// 1.导入fs模块
const fs = require('fs');
const filePath = 'example.txt';

// 2.删除文件
// 参数1: 文件路径
// 参数2: 回调函数
fs.rm(filePath, (err) => {
    if (err) {
        console.error('删除文件时出错:', err);
    } else {
        console.log('文件删除成功');
    }
});

写完代码后,需要在terminal控制台输入指令:node 【 js文件的路径】

node C:\Users\Administrator\Desktop\learning\rm.js

递归删除非空目录

const fs = require('fs');

const dirPath = 'exampleDir';
// 参数1: 目录路径
// 参数2: 配置对象
// recursive: 是否递归删除子目录和文件
// force: 是否强制删除
// 参数3: 回调函数
fs.rm(dirPath, { recursive: true, force: true }, (err) => {
    if (err) {
        console.error('删除目录时出错:', err);
    } else {
        console.log('目录及其子目录和文件删除成功');
    }
});

写完代码后,需要在terminal控制台输入指令:node 【 js文件的路径】

node C:\Users\Administrator\Desktop\learning\rm.js

6. fs.readdir():获取目录下的文件和子目录列表。

语法格式:

fs.open(path, flags[, mode], callback)

参数解释:
参数1: 必选参数,文件路径。
参数2: 必选参数,打开文件的方式读写
参数3: 可选参数,设置文件模式(权限),默认为 0666(可读写)
参数4: 必选参数,回调函数。带有两个参数如:callback(err, fd)

// 导入文件系统模块
const fs = require('fs');

const directoryPath = '.'; // 当前目录

// 参数1: 目录路径
// 参数2: 配置对象
// withFileTypes: 是否返回fs.Dirent对象
// 参数3: 回调函数
fs.readdir(directoryPath, { withFileTypes: true }, (err, files) => {
    if (err) {
        console.error('读取目录时出错:', err);
        return;
    }
    files.forEach((file) => {
        if (file.isDirectory()) {
            console.log(`${file.name} 是一个目录`);
        } else {
            console.log(`${file.name} 是一个文件`);
        }
    });
});

写完代码后,需要在terminal控制台输入指令:node 【 js文件的路径】

node C:\Users\Administrator\Desktop\readdir.js

http://www.kler.cn/a/588864.html

相关文章:

  • 【华为OD-E卷 -121 消消乐游戏 100分(python、java、c++、js、c)】
  • 9种Python数据可视化方案,让财务数据焕发生命力
  • 基于Spring Boot的网上蛋糕售卖店管理系统的设计与实现(LW+源码+讲解)
  • 谷云科技RestCloud智能体搭建平台助力企业快速搭建AI Agent
  • spring boot连接clickhouse集群,实现故障节点自动切换
  • Python基于深度学习的多模态人脸情绪识别研究与实现
  • 【TCP】三次挥手,四次挥手详解--UDP和TCP协议详解
  • 【LeetCode110】平衡二叉树
  • 爬虫获取 item_get_video 接口数据:小红书笔记视频详情的深度解析
  • Docker 端口映射的 “隐藏炸弹“ 与安全访问方案
  • 第二十七天 实践分布式任务调度,实现一个简单的分布式任务
  • Linux内核邻接子系统分析
  • PHP与前端框架的无缝集成:最佳实践与案例分析
  • 【Linux篇】初识Linux指令(下篇)
  • 【部署】ubuntu部署olmOCR
  • DICT领域有哪些重要的技术标准和规范?
  • 国科大——计网(0812)——考试真题
  • 96.HarmonyOS NEXT工具类设计模式教程:最佳实践与实现
  • 项目--五子棋(前置知识)
  • win32汇编环境,对 WM_MOUSEMOVE 消息的理解