首頁 > web前端 > js教程 > 了解一下Node.js中的資料夾寫入

了解一下Node.js中的資料夾寫入

青灯夜游
發布: 2020-12-07 17:51:36
轉載
3473 人瀏覽過

本篇文章為大家介紹一下Node.js中的資料夾寫入。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。

了解一下Node.js中的資料夾寫入

相關推薦:《node js教學

fs.Dir & fs.Dirent

#fs.Dir 是可迭代的目錄流的類,fs.Dirent 是遍歷fs.Dir 獲得的目錄項,可以是檔案或目錄中的子目錄

fs.Dir

  • dir.path:目錄的唯讀路徑
  • dir.read():不傳入callabck 函數則傳回Promise,讀取迭代器下一個目錄項,傳回一個Promise,resolve後來得到fs.Dirent 或null(如果沒有更多的目錄項目要讀取)
  • dir.close():不傳入callabck 函數則傳回Promise,關閉目錄的底層資源句柄

fs.Dirent

  • dirent.name
  • dirent.isDirectory()
  • dirent.isFile()
  • #dirent.isSymbolicLink()

fs.opendir

fs.opendir(path[, options], callback) 開啟一個目錄,回傳fs.Dir物件

const fs = require('fs/promises');

async function print(path) {
  const dir = await fs.opendir(path);
  for await (const dirent of dir) {
    console.log(dirent.name);
  }
}
print('./').catch(console.error);
登入後複製

可以透過dir.read() 迭代dir

const fs = require('fs/promises');

async function print(path) {
  const dir = await fs.opendir(path);
  let dirent = await dir.read();
  while (dirent) {
    console.log(dirent.name);
    dirent = await dir.read();
  }

  dir.close();
}
print('./').catch(console.error);
登入後複製

fs.readdir

fs.readdir(path[, options], callback) 讀取目錄的內容,回呼有兩個參數(err, files),其中files 是目錄中的檔名的陣列(不包括'.' 和'..')
options

  • encoding:預設值utf8,如果encoding 設定為'buffer',則傳回的檔案名稱是Buffer 物件
  • withFileTypes:預設值false,設定為true 後回呼函數files陣列將包含fs.Dirent 物件
const fs = require('fs/promises');

async function print(path) {
  const files = await fs.readdir(path);
  for (const file of files) {
    console.log(file);
  }
}
print('./').catch(console.error);
登入後複製

fs.mkdir

fs.mkdir(path[, options], callback) 建立目錄
options

  • recursive:預設值false,設定為true 時候相當指令mkdir -p 會把不存在的目錄建立
  • mode:預設值0o777,Windows不支援
// 创建 /tmp/a/apple 目录,无论是否存在 /tmp 和 /tmp/a 目录。
fs.mkdir('/tmp/a/apple', { recursive: true }, err => {
  if (err) throw err;
});
登入後複製

fs.rmdir

fs.rmdir(path[, options], callback) fs.rmdir 用於刪除資料夾
# options

  • recursive:預設值false,如果為true,則執行遞歸的目錄刪除。在遞歸模式中,如果 path 不存在則不報告錯誤,並且在失敗時重試操作
  • retryDelay:預設值 100,出現異常後重試之間等待毫秒數。如果recursive 選項不為true,則忽略此選項
  • maxRetries:預設值為0,表示出現異常後重試的次數,如果遇到EBUSY、 EMFILE、 ENFILE、 ENOTEMPTY 或EPERM 錯誤,則Node. js 將會在每次嘗試時以retryDelay 毫秒的線性回退來重試該操作。如果recursive 為false,則忽略此選項
const fs = require('fs');

fs.rmdir('./tmp', { recursive: true }, err => console.log);
登入後複製

之前rmdir 只能刪除空的資料夾,現在可以連同檔案一起刪除了

更多程式設計相關知識,請造訪:程式教學! !

以上是了解一下Node.js中的資料夾寫入的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:cnblogs.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板