nodejs之fs模块

文件操作就是i/o操作
input/output => i/o 操作 => 流 二进制 => buffer
数据(字符串,音频,视频,二进制) => buffer => stream

1.写入数据到文件
异步:

fs.writeFile(file, data[, options], callback)
const fs=require('fs');
fs.writeFile("./test.txt","test txt",(e)=>{//若是文件不存在,则创建文件
  if(e){//若是问件目录不存在则会创建失败
    console.log(e)
  }else{
    console.log("文件写入成功")
  }
})

同步:

const fs=require('fs');
try {
  let res=fs.writeFileSync("./test.txt","test txt")
  console.log("写入文件成功");
} catch (e) {
  console.log(e)
}

添加内容(异步):

const fs=require('fs');
fs.appendFile("./test.txt","追加的内容",(e)=>{
  if(e){
    console.log(e);
  }else {
    console.log("追加内容成功")
  }
})

2.获取文件信息

	const fs=require('fs');
fs.stat("./test.txt",(e,d)=>{
  if(e){
    console.log(e)
  }else{
    console.log(d);
  }
})

stat有几个原型属性和方法。
分别是isFile(), isDirectory(), size, birthtime, mtime.

 const fs=require('fs');
 fs.stat("./test.txt",(e,d)=>{
  if(e){
    console.log(e)
  }else{
    console.log(d);
    console.log(d.isFile())//true
    console.log(d.isDirectory());//false
    console.log(d.size);
    console.log(d.mtime);
  }
})

3.删除文件

fs.unlinkSync("./test.txt")

4.创建文件夹

 fs.mkdirSync('./a/b/c');//创建失败,不能进行递归创建
 fs.mkdirSync('./a');./、创建成功

5.删除空文件夹

fs.rmdirSync('./test')//不能直接删除非空文件夹

用递归的方法删除非空文件夹

function rmdir(dirPath) {
    let files = fs.readdirSync(dirPath);
    // console.log(files)files是数组;
    files.forEach( child => {
        let childPath = dirPath + '/' + child;
        // 当前child可能是文件也有可能是文件夹
        if ( fs.statSync(childPath).isDirectory() ) {
            //因为文件夹里面可能还会有子文件,所以也不能直接删除
            //而是需要调用rmdir方法
            // fs.rmdirSync();
            rmdir(childPath);
        } else {
            // 删除每一个子文件
            fs.unlinkSync(childPath);
        }
    } );
    fs.rmdirSync(dirPath);
}

6.监听文件

const fs=require('fs');
fs.watchFile("./test.txt",(event)=>{//event相当于事件对象
  console.log("文件被改变了");
  console.log(event);
})

7.监听文件夹

const fs=require('fs');
fs.watch("./text",(event,filename)=>{
  console.log("event",event);
  console.log("filename:",filename);
})
// event rename
// filename: test.123
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值