NodeSchoolに入学しよう!

ディレクトリの読み込み

全333コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
fsモジュールを使用してディレクトリに含まれるファイルの一覧を取得する方法について学びます。
講師:
07:19

字幕

このレッスンでは Node.js で ディレクトリの内容を読み出す方法について 学びます それではまず ワークショッパーを開きましょう Learnyounode 今回はこちらの四番目の FILTERED LS という問題を解きます Enterを押してください 問題 ディレクトリの読み出しですね これも fs モジュールを使用します では Node を起動しましょう まずは fs モジュールをロードします require fs そして ディレクトリの読み出しには readdir メソッドを使用します readdir の一番目に 読み出したいディレクトリの path を指定します 今回はカレントディレクトリを 読み出してみましょう そしてこのメソッドは非同期の関数なので 二番目にコールバックを指定します ちなみに この関数の 同期呼び出しバージョンもあります その同期呼び出しバージョンは 関数の末尾にこのように Sync とつける こうすれば 同期呼び出しのバージョンになります そして非同期呼び出しの コールバック関数の一番目のパラメーターは エラー ( err ) そして二番目に この関数の場合には 読み出したディレクトリのアイテムが入った 配列が取得できます そしてここで これをそのまま 出力してみましょう console. log の list そして 関数の呼び出しを完了します するとこの様に カレントディレクトリの中身が 配列として取得出来ていることが解ります 配列の中には ディレクトリの 各エントリーが入っています それから今回の問題にもう一つ役立つ 新しいモジュールとして path モジュールというのがあります path モジュールはこの様に path という名前でロードできます そしてロードして 例えば path モジュールの dirname というモジュールを使って そこに 何らかの path を与えます 例えば aaa/ bbb/ ccc.txt といった path を与えてみます すると この様に この path の中から ディレクトリ名の部分だけ切り出して 表示してくれました では今度は dirname ではなくて basename これをやってみると その path に含まれるファイル名の部分を 切り出してくれました また 今度は ext extname でしたね extname とやると このように拡張子名を切り出してくれます もう一つよく使うのが path の join というやつです ここに 二つの path 名の要素を与えます 例えば この様に ディレクトリ名を与えて 次に bbb.txt という様に ファイル名を与えてみます すると このように結合して 一つの path 名にしてくれました この関数の便利なところは 例えばディレクトリ名の末尾に この様に / がついていたとしても この様に / の部分をうまい具合に結合して きれいな path にしてくれます さて ヒントはここまでです それでは皆さん 問題を解いてみてください 問題の方に正解できましたでしょうか? 答え合わせです 私の方でこれから 正解のプログラムを書いていきます まずはテキストエディターで ソースコードを開きます program.js そしてとりあえず まずは fs モジュールをロードですね require の fs それから今回 path モジュールも使うので ロードしておきます require path それからパラメーターとして ディレクトリの path と 拡張子が与えられると いうことだったので それも一応変数の中にいれておきましょう dirpath= path は process の argv 配列で 取得できます そして一番目のパラメーターは 添字として 2 を使います。 それから拡張子 拡張子は二番目のパラメーターでした そして fs の readdir で dirpath を与えて ディレクトリの中身を呼び出します リストの中にディレクトリの 項目が納められた配列が 入っているので これを for でまわします forEach でまわせば ディレクトリの各アイテムが取得できます そしてこれを 後はフィルターして 出力すれば ok ですね フィルターをする為に path の extname に対して item itemの これで拡張子を取り出します それが extname + 今回の問題で 与えられる拡張子の部分には . (ドット)が含まれておりませんので . (ドット)を付加します . (ドット)を付加した上で 一つの文字列に結合して それを与えられたファイル名の 拡張子部分と比較します ファイルの拡張子と そのコマンドラインパラメーターで 与えられた拡張子名が 一致していた場合には 表示ですね これで 後は console.log に アイテムをそのまま出力すれば OK なはずです それでは答え合わせしてみましょう learnyounode verify program.js 正解だったようです このレッスンでは Node.js でディレクトリの中身を 呼び出す方法について 説明しました

NodeSchoolに入学しよう!

NodeSchoolワークショッパーとは、オープンソースで開発されているNode.jsやJava Scriptについて学ぶためのクイズ形式のアプリケーションです。このコースでは、learnyounodeとexpressworksという2つのワークショッパーを通じてNode.jsとExpress.jsの基本的な使い方を学びます。

3時間13分 (24 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
Node.js Node.js 0.10.24
価格: 3,990
発売日:2015年04月07日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。