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.文件夹的重命名