【Node.js24.x】Object::opendir()メソッドの使い方
opendirメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
opendirメソッドは、Node.jsのファイルシステムを操作するfsモジュールに属し、指定されたディレクトリを開いてその内容を読み取るためのDirオブジェクトを取得するメソッドです。このメソッドは、ファイルやサブディレクトリといったディレクトリ内のエントリを効率的に処理する際に利用されます。
引数として、開きたいディレクトリのパスを文字列で指定します。opendirメソッドは非同期で動作し、Promiseを返します。このPromiseが正常に解決されると、開かれたディレクトリを表すDirオブジェクトが得られます。このDirオブジェクトを使用することで、read()メソッドでディレクトリ内のエントリを一つずつ順番に非同期で読み進めたり、処理が完了した後にclose()メソッドでディレクトリを閉じたりすることができます。
このように非同期で処理を進めることで、特に大規模なディレクトリ構造を扱う場合でも、アプリケーションの動作をブロックすることなく、メモリ効率よく内容を処理することが可能です。例えば、特定のディレクトリ内のすべてのファイルの名前をリストアップしたり、ファイルの種類に応じて異なる操作を行ったりするシナリオで非常に有用です。指定されたパスにディレクトリが存在しない場合や、アクセス権限がない場合にはPromiseが拒否され、エラーが発生しますので、適切なエラーハンドリングを行うことが重要です。
構文(syntax)
1import { opendir } from 'node:fs/promises'; 2 3async function openDirectory() { 4 try { 5 const dir = await opendir('path/to/directory', { encoding: 'utf8' }); 6 await dir.close(); 7 } catch (error) { 8 // エラーハンドリング 9 } 10} 11 12openDirectory();
引数(parameters)
path, options = {}, callback
- path: string: 開くディレクトリのパス
- options: object = {}: ディレクトリを開く際のオプション
- callback: function: ディレクトリ操作完了後に実行されるコールバック関数
戻り値(return)
Promise<Dir>
指定されたディレクトリの内容を非同期で読み込むためのDirオブジェクトをPromiseで返します。このDirオブジェクトを通して、ディレクトリ内のエントリを列挙したり、ディレクトリを閉じたりすることができます。