1. 讀取文件
獲得是文件的butter數(shù)據(jù)(二進制數(shù)據(jù)),用toString將二進制數(shù)據(jù)轉(zhuǎn)成正常字符串。
//異步
fs.readFile("./text.html", (err, date) => {
console.log(date.toString());
});
//同步
const data = fs.readFileSync("./text.html");
console.log(data.toString());
要注意的是異步操作不會等待當(dāng)前異步操作完成后才會執(zhí)行,而加了Sync的是同步操作,他會等此操完成后才會執(zhí)行。
2. 寫入文件
//異步版本的寫入
fs.writeFile("./text.html", "我是寫入的內(nèi)容", (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. 創(chuàng)建文件夾
//異步操作創(chuàng)建文件夾
fs.mkdir("./public", (err, data) => {
if (err) {
console.log(err);
} else {
console.log("public文件夾創(chuàng)建成功");
}
});
//同步操作創(chuàng)建文件夾
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() 判斷是不是一個文件 返回結(jié)果為true
console.log(info.isFile());
}
});
//獲取public文件夾信息
fs.stat("./public", (err, info) => {
if (err) {
console.log(err);
} else {
// info.isDirectory() 判斷是不是一個文件 返回結(jié)果為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); 返回的文件是個數(shù)組,可以用forEach循環(huán)輸出文件名
files.forEach((x) => {
console.log("有" + x + "這個文件");
});
}
});
//同步獲取文件夾里面的所有文件
let files = fs.readdirSync("./public");
console.log(files); //返回的是一個數(shù)組
8. 移動并可以重命名文件
第一個參數(shù)是原始文件路徑,第二個參數(shù)是目標(biāo)文件路徑。
如果單獨只是文件名的話就會把文件重命名,第二個參數(shù)如果是目錄里面的文件的話他就會把文件移動。
//異步操作移動并重命名文件
fs.rename("./text.html", "./public/index.html", (err, data) => {
if (err) {
console.log(err);
} else {
console.log("已經(jīng)移動并更改");
}
});
// 同步操作移動并重命名文件
fs.renameSync("./text.html", "./public/index.html");
9. 復(fù)制并重命名文件
//異步復(fù)制并重命名文件
fs.copyFile("./index.html", "./public/index.html", (err) => {
if (err) {
console.log(err);
} else {
console.log("已經(jīng)復(fù)制并移動");
}
});
// 同步操作復(fù)制并重命名文件
fs.copyFileSync("./index.html", "./public/index.html");