【Node.js】fsを使って中身のあるフォルダを再帰的に削除しよう!

Node.js

みなさんこんにちは、現役エンジニアのサメハックです

未経験からWebエンジニアに転職し、
正社員として5年働いたのちフリーランスとして独立しました。

Node.jsの解説シリーズです。

今回はfsを使って中身のあるフォルダを再帰的に削除する方法について学んでいきましょう!

駆け出しエンジニアや未経験の方、
また新入社員を指導する先輩社員にとっても
わかりやすいように解説していきます!

この記事を読むと・・・
  • Node.jsでfsモジュールを使ってフォルダを再帰的に削除ができる
本記事ではTypeScriptで記述するよ!

fsモジュールを使って中身のあるフォルダを再帰的に削除しよう!

fsのrm関数を使って中身のあるフォルダを再帰的に削除する構文

await fs.rm(フォルダパス, { recursive:true }, () => { 削除後の処理 })
{ recursive:true }というオプションをつけることで
中身のあるフォルダも再帰的に削除ができるよ!

【コピペ用】関数化しよう!

フォルダの削除はよく使うので関数化しました。
汎用的な処理にしているので、このままでも使用できます。

// fsモジュールのインポート
import fs from "fs";

/**
 * 指定されたパスのファイルまたはディレクトリを削除する
 * @param {string} path - 削除対象のファイルまたはディレクトリのパス
 * @void
 */
const deleteDirectoryWithAllContents = async (path) => {
  // ファイルの存在チェック
  if (fs.existsSync(path)) {
    // ファイル(ディレクトリ)を再帰的に削除する
    await fs.rm(path, { recursive: true }, () => {
      console.log("削除が完了しました");
    });
  }
};


// 関数の呼び出し
deleteDirectoryWithAllContents("/my-data/logs")
存在チェックを挟むのがキモだよ!
これがないと、パスに間違いがあった時点でエラーが発生するよ!

まとめ

  • フォルダを再帰的に削除する方法
  • await fs.rm(フォルダパス, { recursive:true }, () => { 削除後の処理 })
  • 実装する際にはファイルの存在チェックを行う

満足いただけたら、1クリックなのでSNSフォローしてもらえると嬉しいです🦈

タイトルとURLをコピーしました