多くの場合、ディレクトリツリー全体(ディレクトリと、その中のファイル、サブディレクトリ、およびそれらのサブディレクトリの内容、およびそれらのサブディレクトリの内容などを含むすべて)をスキャンしたいと思います。
ノードでこれをどのように達成しますか?要件は、超高速のノンブロッキングIOを利用するために非同期である必要があり、一度に多くのファイルを処理するときにクラッシュしないことです。
多くの場合、ディレクトリツリー全体(ディレクトリと、その中のファイル、サブディレクトリ、およびそれらのサブディレクトリの内容、およびそれらのサブディレクトリの内容などを含むすべて)をスキャンしたいと思います。
ノードでこれをどのように達成しますか?要件は、超高速のノンブロッキングIOを利用するために非同期である必要があり、一度に多くのファイルを処理するときにクラッシュしないことです。
-2012年以降の進捗状況について、2017年にこの回答を更新しました-
それを達成するためにこれらを作成することになりました:
https://github.com/bevry/safefs-https://npmjs.org/package/graceful-fs(以前は存在しなかった)を使用するようになりました
https://github.com/bevry/scandirectory-このようなプロジェクトも数多くあります
また、軽量で超高速のこれも作成しました。
それを達成したい場合は、モジュールnpmdreeを使用できます。ディレクトリツリーを説明するjsonを返し、fileCallbackとdirCallbackも指定できるため、次のことができます。
コードは次のとおりです。
const dree = require('dree');
const fileCb = function(file) {
// do what you want
}
const dirCb = function(directory) {
// do what you want
}
dree.scan('path-to-directory', { extensions: [ 'html', 'js' ] }, fileCb, dirCb);