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");
网友评论