Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ Node.jsでのディレクトリ管理 | Node.jsとExpress.jsによるコンソールアプリケーションの構築
Node.jsとExpress.jsによるバックエンド開発

bookNode.jsでのディレクトリ管理

メニューを表示するにはスワイプしてください

これまでに、FileSystem(fs)モジュールを使った多くのファイル操作手法を学びました。しかし、ディレクトリは単なるファイルの保存場所ではなく、整理やデータ分析など、さまざまな用途があります。

この章では、ディレクトリ操作に焦点を当て、ディレクトリのナビゲーション、重要な統計情報の取得、ディレクトリの処理、ディレクトリ内容を分析・表示するスクリプトの作成方法について解説します。

fs.readdirによるディレクトリのナビゲーション

fs.readdirメソッドは、ディレクトリの内容を非同期的に読み取ります。戻り値はファイル名の配列です。このメソッドは、フォルダ内のファイル一覧を取得するタスクに役立ちます。

例えば、多数の法的契約書、訴状、その他の書類を、案件やクライアントごとに管理する場合を考えます。各クライアントのフォルダ内のファイル名を抽出して一覧表示するシステムを作成できます。

コード例:ディレクトリ内のファイル名を読み取る

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

async function listDirectoryContents(directoryPath) {
  try {
    const files = await fs.readdir(directoryPath);
    console.log("Directory Contents:", files);
  } catch (err) {
    console.error("Error reading directory:", err.message);
  }
}

listDirectoryContents("./docs");

ステップごとの解説

fs.statによるディレクトリ統計情報の取得

ディレクトリはファイルを格納し、各ファイルの属性に関する重要な情報を保持。

fs.statメソッドは、ファイルまたはディレクトリの統計情報を非同期で取得。これらの統計情報には、ファイルサイズ、パーミッション、タイムスタンプなどが含まれる。

次に、docsフォルダー内の各フォルダーの統計情報を取得。

コード例:ディレクトリ名と統計情報の取得

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

async function processDirectoryContents(directoryPath) {
  try {
    const files = await fs.readdir(directoryPath);

    const fileStatsPromises = files.map(async (file) => {
      const filePath = `${directoryPath}/${file}`;
      const stats = await fs.stat(filePath);
      return { name: file, stats };
    });

    const fileStats = await Promise.all(fileStatsPromises);
    console.log("Detailed File Information:", fileStats);
  } catch (err) {
    console.error("Error processing directory contents:", err.message);
  }
}

processDirectoryContents("./docs");

ステップごとの解説

1. ディレクトリの内容を一覧表示するために使用できるメソッドはどれですか?

2. fs.stat メソッドの目的は何ですか?

question mark

ディレクトリの内容を一覧表示するために使用できるメソッドはどれですか?

正しい答えを選んでください

question mark

fs.stat メソッドの目的は何ですか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 2.  9

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 2.  9
some-alt