[解決済み] nodejsでフォルダ下の*.htmlという拡張子でファイルを検索する。
2022-09-05 18:04:46
質問
nodejsを使用して、srcフォルダとそのサブフォルダ内のすべての*.htmlファイルを見つけたいと思います。それを行うための最良の方法は何ですか?
var folder = '/project1/src';
var extension = 'html';
var cb = function(err, results) {
// results is an array of the files with path relative to the folder
console.log(results);
}
// This function is what I am looking for. It has to recursively traverse all sub folders.
findFiles(folder, extension, cb);
私は、多くの開発者が優れたテスト済みのソリューションを持っているはずで、自分で書くよりもそれを使う方が良いと考えています。
どのように解決するのですか?
node.jsの、再帰的な単純な関数です。
var path = require('path'), fs=require('fs');
function fromDir(startPath,filter){
//console.log('Starting from dir '+startPath+'/');
if (!fs.existsSync(startPath)){
console.log("no dir ",startPath);
return;
}
var files=fs.readdirSync(startPath);
for(var i=0;i<files.length;i++){
var filename=path.join(startPath,files[i]);
var stat = fs.lstatSync(filename);
if (stat.isDirectory()){
fromDir(filename,filter); //recurse
}
else if (filename.indexOf(filter)>=0) {
console.log('-- found: ',filename);
};
};
};
fromDir('../LiteScript','.html');
派手にやりたいならRegExpを追加し、汎用性を持たせるためにコールバックを追加します。
var path = require('path'), fs=require('fs');
function fromDir(startPath,filter,callback){
//console.log('Starting from dir '+startPath+'/');
if (!fs.existsSync(startPath)){
console.log("no dir ",startPath);
return;
}
var files=fs.readdirSync(startPath);
for(var i=0;i<files.length;i++){
var filename=path.join(startPath,files[i]);
var stat = fs.lstatSync(filename);
if (stat.isDirectory()){
fromDir(filename,filter,callback); //recurse
}
else if (filter.test(filename)) callback(filename);
};
};
fromDir('../LiteScript',/\.html$/,function(filename){
console.log('-- found: ',filename);
});
関連
-
[解決済み】モジュール '@babel/core' が見つかりません。
-
[解決済み] のエラーが発生しました。これはおそらくnpmの問題ではありません。上に追加のログ出力があると思われます
-
[解決済み] bodyParser は非推奨です express 4
-
[解決済み] Yarn にパッケージを強制的に再インストールさせるにはどうしたらいいですか?
-
[解決済み] Mongoose Schema がモデルとして登録されていません。
-
[解決済み] Linuxで特定のテキストを含むすべてのファイルを検索するにはどうすればよいですか?
-
[解決済み] 指定した文字列パターンを含まないファイルを検索するにはどうすればよいですか?
-
[解決済み] 複数のパターンのいずれかに一致するファイルを見つけるためにfindを使用する
-
[解決済み] node.jsはフォルダ内のすべてのファイルを要求しますか?
-
[解決済み】なぜObjective-Cのファイルには.mという拡張子がついているのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Node.js getaddrinfo ENOTFOUND
-
[解決済み】passport.js passport.initialize() ミドルウェアが使用されていません。
-
[解決済み】MongooseでEnumを作成し使用する方法
-
[解決済み] EventEmitter のメモリリークの可能性が検出された
-
[解決済み] nodeファイルの先頭にある"/usr/bin/env node "は、具体的には何をするのですか?
-
[解決済み] joiライブラリを使用して2つの時間を比較する方法
-
[解決済み] Node.jsで「btoaが定義されていない」エラーが発生する
-
[解決済み] nodejsでfindAllのソート順を続編にする
-
[解決済み] エラーです。Expressでビューの検索に失敗しました
-
[解決済み] ノードのバージョンを管理するためのnまたはnvm - 各バージョンのグローバルモジュールを保持することは良いアイデアですか?