文件相关
- 针对文件的所有操作而言,没有加 Sync 的都是异步操作
引入模块
const fs = require("fs");
如果没有该写入的文件,会自动创建该文件
- flag a : 追加写入 w : 覆盖写入
// 将 hello world 这个字符串写入文件
fs.writeFile("001.txt", "hello world", { flag: "a" }, function (err) {
if (err) throw err;
console.log("写入成功");
});
如果不配置文件的读取编码格式,会以 Buffer 的形式读取出来
当然你可以 将 Buffer 通过 toString 转变为可读格式
fs.readFile("001.txt", "utf8", (err, data) => {
if (err) throw err;
console.log(data);
});
修改文件名
fs.rename("001.txt", "002.txt", (err) => {
if (err) {
throw err;
}
console.log("文件名修改成功");
});
文件的复制
fs.copyFile("002.txt", "002 copy.txt", (err) => {
if (err) {
throw err;
}
console.log("文件复制成功");
});
删除文件
fs.unlink("002.txt", (err) => {
if (err) throw err;
console.log("删除成功");
});
同步写法
再次强调 针对文件的所有操作而言,没有加 Sync 的都是异步操作
let data = fs.readFileSync("001.txt", "utf8");
console.log(data.toString);
目录相关
创建目录
fs.mkdir("mulu", (err) => {
if (err) throw err;
console.log("mulu 创建成功");
});
修改目录名称
fs.rename("mulu", "mulu2", (err) => {
if (err) throw err;
console.log("目录名称修改成功");
});
读取目录
fs.readdir("mulu", (err, files) => {
if (err) throw err;
console.log(files);
});
删除目录(只能删除空文件夹)
fs.rmdir("mulu", (err) => {
if (err) throw err;
console.log("mulu 删除成功");
});
判断文件或者目录是否存在
fs.exists("mulu", (ists) => {
console.log(ists);
});
获取目录或者文件详情
fs.stat("mulu", (err, stats) => {
if (err) {
throw err;
}
console.log(stats);
// 判断当前给定的路径是否是一个文件
console.log(stats.isFile());
// 判断当前给定的路径是否是一个目录
console.log(stats.isDirectory());
});
删除非空文件夹
function removeFiles(path) {
// 先获取到该目录下所有文件或目录
let dirs = fs.readdirSync(path);
for (let i = 0; i < dirs.length; i++) {
let stat = fs.statSync(path + "/" + dirs[i]);
if (stat.isDirectory()) {
// 递归删除
removeFiles(path + "/" + dirs[i]);
} else {
// 删除文件
fs.unlinkSync(path + "/" + dirs[i]);
}
}
// 删除空文件夹
fs.rmdirSync(path);
}