fs模塊

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");
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容