570 node内置模块fs


fs的API介绍


案例:获取一个文件的状态


文件描述符


文件的读写


flag选项


encoding选项


文件夹操作


文件夹的复制


01_fs的三种使用方式.js

const fs = require('fs');

// 案例: 读取文件的信息
const filepath = "./abc.txt";

// 1.方式一: 同步操作
const info = fs.statSync(filepath);
console.log("后续需要执行的代码");
console.log(info);

// 2.方式二: 异步操作
// fs.stat(filepath, (err, info) => {
//   if (err) {
//     console.log(err);
//     return;
//   }
//   console.log(info);
//   console.log(info.isFile());
//   console.log(info.isDirectory());
// });
// console.log("后续需要执行的代码");

// 3.方式三: Promise
// fs.promises.stat(filepath).then(info => {
//   console.log(info);
// }).catch(err => {
//   console.log(err);
// });

// console.log("后续需要执行的代码");


02_文件描述符.js

const fs = require('fs');

fs.open("./abc.txt", (err, fd) => {
  if (err) {
    console.log(err);
    return;
  }

  // 通过描述符去获取文件的信息
  fs.fstat(fd, (err, info) => {
    console.log(info);
  })
})

03_文件的读写.js

const fs = require('fs');

// 1.文件写入
// const content = "你好啊,哈哈哈";

// fs.writeFile('./abc.txt', content, {flag: "a"}, err => {
//   console.log(err);
// });

// 2.文件读取
fs.readFile("./abc.txt", { encoding: 'utf-8' }, (err, data) => {
  console.log(data);
});

04_文件夹操作.js

const fs = require('fs');

// 1.文件写入
// const content = "你好啊,哈哈哈";

// fs.writeFile('./abc.txt', content, {flag: "a"}, err => {
//   console.log(err);
// });

// 2.文件读取
fs.readFile("./abc.txt", { encoding: 'utf-8' }, (err, data) => {
  console.log(data);
});

04_文件夹操作.js

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

// 1.创建文件夹
const dirname = './why';

if (!fs.existsSync(dirname)) {
  fs.mkdir(dirname, err => {
    console.log(err);
  });
}

// 2.读取文件夹中的所有文件
// fs.readdir(dirname, (err, files) => {
//   console.log(files);
// });

// function getFiles(dirname) {
//   fs.readdir(dirname, { withFileTypes: true }, (err, files) => {
//     for (let file of files) {
//       // fs.stat(file) 可以, 但是有点麻烦
//       if (file.isDirectory()) {
//         const filepath = path.resolve(dirname, file.name);
//         getFiles(filepath);
//       } else {
//         console.log(file.name);
//       }
//     }
//   });
// }

// getFiles(dirname);

// 3.重命名
fs.rename("./why", "./kobe", err => {
  console.log(err);
})


// 3.文件夹的重命名




原文地址:https://www.cnblogs.com/jianjie/p/14232452.html