【六】 fs模块

本文介绍了Node.js中的fs模块,用于进行文件和目录的操作,包括创建、修改、删除目录以及读写文件。fs.mkdir用于创建目录,fs.rename改变目录名,fs.rmdir删除目录,fs.stat获取文件或目录信息。同时,fs.writeFile和fs.readFile分别用于文件的写入和读取,fs.unlink则用于删除文件。fs.readdir可读取目录内容,配合fs.unlink可删除目录下的所有文件。同步方法可以通过添加Sync后缀实现,如fs.mkdirSync。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

nodejs fs模块

node底层使用 c++ ,可以对文件进行编写

目录修改:

const fs = require('fs')

// 编写目录 参数一:路径  参数二:执行完的回调
fs.mkdir('./avatar',(err) => {
  // console.log(err);   // 创建成功 err为 null
  if(err && err.code==="EEXIST"){
    console.log('文件已存在')
  }
})

// 修改目录名 参数一:目录  参数二:修改为  参数三:执行完的回调
fs.rename('./avatar','./a',(err) => {
  // console.log(err);
  if(err && err.code==='ENOENT') {
    console.log('当前目录不存在')
  }
})

// 删除目录: 目录中有文件 会删除失败,只能删除空文件
fs.rmdir('./a',err => {
  // console.log(err);
  if(err && err.code==='ENOENT') {
    console.log('当前目录不存在')
  }
})

// 查看目录 或 文件 详细信息
fs.stat('./avatar', (err, data) => {
  console.log(data) // 返回对象,创建文件时间,文件大小

  console.log(data.isFile()); // 查看是不是文件
  console.log(data.isDirectory()); //查看是不是目录
})

文件读写创建删除:

const fs = require('fs')

// 创建文件并写入内容  参数一:路径(没有该文件回自动创建)  参数二:写入内容 参数三:执行完的回调
fs.writeFile('./avatar/a.txt',"hello",err => {
  console.log(err);
  // 重新执行不会添加,而是覆盖原来的内容
})

// 读文件1 参数一:路径   参数二:执行完的回调
fs.readFile('./avatar/a.txt',(err,data)=>{
  //回到函数的error-first风格:错误在前,真正的内容再后
  if(!err){
    // buffer对象,使用 toString("utf-8")转为字符串
    console.log(data.toString("utf-8")); 
  }
})

// 读文件2 参数一:路径  参数二:内容格式  参数三:执行完的回调
fs.readFile('./avatar/a.txt',"utf-8",(err,data)=>{
  //回到函数的error-first风格:错误在前,真正的内容在后
  if(!err){
    // buffer对象,使用 toString("utf-8")转为字符串
    console.log(data); 
  }
})

// unlin异步 删除文件: 参数一:路径 
fs.unlink('./avatar/a.txt',(err)=>{
  console.log(err);  // null 代表删除成功
  if(err && err.code ==="ENOENT") {
    console.log("没有这样的文件或目录");
  }
})

// 删除目录下所有文件
fs.readdir('./avatar',(err,data) => {
  // 读取到所有文件,对数组进行forEach 循环删除
  data.forEach((item)=>{
    fs.unlink(`./avatar/${item}`,err => {
      console.log(err);
    })
  })
  // 不能直接在这删除目录,因为unlin是异步的,不会阻塞后面执行
  // fs.rmdir('./avatar',err=>{})
})

注意:模块添加Sync为同步执行,会阻塞下面的代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不叫虎子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值