建立檔案與目錄

已完成

身為 Tailwind Traders 的開發人員,您即將深入探討以程式設計方式建立和刪除新檔案和目錄的實際用法。 這是企業營運應用程式的常見需求。

到目前為止,您已了解如何使用 fs 模組來處理檔案與目錄。 您也可以使用 fs 模組,以程式設計方式,在系統上建立、刪除、複製、移動檔案與目錄,或對其進行其他操作。

使用 fs.mkdir 建立目錄

mkdir 方法可供建立目錄。 下列方法會在 201 資料夾內建立稱為 newDir 的資料夾。

const fs = require("fs").promises;
const path = require("path");

await fs.mkdir(path.join(__dirname, "stores", "201", "newDir"));

檔案結構 /stores/201 必須已經存在,否則此方法會失敗。 若想要讓作業建立不存在的檔案結構,您可以傳入選擇性的 recursive 旗標。

await fs.mkdir(path.join(__dirname, "newDir", "stores", "201", "newDir"), {
  recursive: true
});

請確定目錄存在

若嘗試建立的目錄已經存在,mkdir 方法將會擲回錯誤。 這種情況並不理想,因為錯誤會導致程式突然停止。 若計劃在開啟檔案或目錄之後進行操作,為避免該情況,Node.js 建議將 mkdir 方法包裝在 try/catch 中 (我們會這麼做)。

const pathToCreate = path.join(__dirname, "stores", "201", "newDirectory");

// create the salesTotal directory if it doesn't exist
try {
  await fs.mkdir(salesTotalsDir);
} catch {
  console.log(`${salesTotalsDir} already exists.`);
}

使用 fs.writeFile 建立檔案

您可以使用 fs.writeFile 方法來建立檔案。 這個方法會採用檔案的路徑,以及想要寫入檔案的資料。 如果檔案已經存在,則會覆寫該檔案。

例如,此程式碼會建立稱為 greeting.txt 的檔案,其中包含 "Hello World!" 文字。

const pathToFile = path.join(__dirname, "greeting.txt");
await fs.writeFile(pathToFile, "Hello World!");

若省略最後一個參數 (也就是要寫入檔案的資料),則 Node.js 會將 "undefined" 寫入檔案。 這個狀況可能「不是」您想要的結果。 若要寫入空的檔案,請傳遞空字串。 更好的選擇是傳遞 String 函式,這能更有效地執行相同的工作,但不會在您的程式碼中留下空引號。

const pathToFile = path.join(__dirname, "greeting.txt");
await fs.writeFile(pathToFile, String());

在下一個練習中,您將使用有關如何建立檔案與目錄的知識來延伸程式,以建立儲存所有銷售檔案總計的目錄。