fs模块

2023-06-27  本文已影响0人  _hider
1. 读取文件

获得是文件的butter数据(二进制数据),用toString将二进制数据转成正常字符串。

//异步
fs.readFile("./text.html", (err, date) => {
  console.log(date.toString());
});

//同步
const data = fs.readFileSync("./text.html");
console.log(data.toString());

要注意的是异步操作不会等待当前异步操作完成后才会执行,而加了Sync的是同步操作,他会等此操完成后才会执行。

2. 写入文件
//异步版本的写入
fs.writeFile("./text.html", "我是写入的内容", (err, data) => {
  if (err) {
    console.log(err);
  } else {
    console.log("文件写入成功");
  }
});

//同步版本的写入
fs.writeFileSync("./text.html", "我是同步写入的文件");
3. 删除文件
//异步操作删除
fs.unlink("./text.html", (err, data) => {
  if (err) {
    console.log(err);
  } else {
    console.log("删除文件成功");
  }
});

//同步操作删除
fs.unlinkSync("./text.html");
4. 创建文件夹
//异步操作创建文件夹
fs.mkdir("./public", (err, data) => {
  if (err) {
    console.log(err);
  } else {
    console.log("public文件夹创建成功");
  }
});

//同步操作创建文件夹
fs.mkdirSync("./public");
5. 删除文件夹
//异步操作删除文件夹
fs.rmdir("./public", (err, data) => {
  if (err) {
    console.log(err);
  } else {
    console.log("删除public文件夹");
  }
});

//同步操作删除文件夹
fs.rmdirSync("./public");
6. 获取文件或者文件夹信息
//获取text.html文件信息
fs.stat("./text.html", (err, info) => {
  if (err) {
    console.log(err);
  } else {
    // info.isFile() 判断是不是一个文件 返回结果为true
    console.log(info.isFile());
  }
});

//获取public文件夹信息
fs.stat("./public", (err, info) => {
  if (err) {
    console.log(err);
  } else {
    // info.isDirectory() 判断是不是一个文件 返回结果为true
    console.log(info.isDirectory());
  }
});

使用同步操作的话相对于简单:

//同步操作获得文件信息并判断是不是文件夹
let file = fs.statSync("./text.html");

if (file.isFile()) {
  console.log("这是一个文件");
} else if (file.isDirectory()) {
  console.log("只是一个文件夹");
} else {
  console.log("抱歉这不是一个文件或者文件夹");
}
7. 读取文件夹里面的所有文件
//异步读取文件夹里面的所有文件
fs.readdir("./public", (err, files) => {
  if (err) {
    console.log(err);
  } else {
    // console.log(files); 返回的文件是个数组,可以用forEach循环输出文件名
    files.forEach((x) => {
      console.log("有" + x + "这个文件");
    });
  }
});

//同步获取文件夹里面的所有文件
let files = fs.readdirSync("./public");
console.log(files); //返回的是一个数组
8. 移动并可以重命名文件

第一个参数是原始文件路径,第二个参数是目标文件路径。
如果单独只是文件名的话就会把文件重命名,第二个参数如果是目录里面的文件的话他就会把文件移动。

//异步操作移动并重命名文件
fs.rename("./text.html", "./public/index.html", (err, data) => {
  if (err) {
    console.log(err);
  } else {
    console.log("已经移动并更改");
  }
});

// 同步操作移动并重命名文件
fs.renameSync("./text.html", "./public/index.html");
9. 复制并重命名文件
//异步复制并重命名文件
fs.copyFile("./index.html", "./public/index.html", (err) => {
  if (err) {
    console.log(err);
  } else {
    console.log("已经复制并移动");
  }
});

// 同步操作复制并重命名文件
fs.copyFileSync("./index.html", "./public/index.html");
上一篇下一篇

猜你喜欢

热点阅读