ホームページ >ウェブフロントエンド >jsチュートリアル >Node.js は、特定の文字列とその文字列が directory_node.js にあるファイルの検索を実装します。

Node.js は、特定の文字列とその文字列が directory_node.js にあるファイルの検索を実装します。

WBOY
WBOYオリジナル
2016-05-16 16:37:481600ブラウズ

要件は次のとおりです:

ディレクトリ全体で40Mほどあり、ファイルも無数にあります。久しぶりなのでどのファイルにその文字列が入っているか思い出せません。強力で目もくらむような Node.js がデビューします。

Windows に Node.js をインストールすることは、通常のソフトウェアをインストールすることと何ら変わりません。インストール後に Node.js のショートカットを開くか、直接 cmd を実行します。

findString.js を作成する

コードをコピー コードは次のとおりです:

var path = require("path");
var fs = require("fs");

var filePath = process.argv[2];
var lookingForString = process.argv[3];
recursiveReadFile(filePath);

function recursiveReadFile(fileName){
if(!fs.existsSync(fileName)) return;
if(isFile(ファイル名)){
check(ファイル名);
}
if(isDirectory(ファイル名)){
var files = fs.readdirSync(fileName);
files.forEach(function(val,key){
var temp = path.join(fileName,val);
If(isDirectory(temp)) recursiveReadFile(temp);
If (isFile(temp)) check(temp);
})
}
}
関数チェック(ファイル名){
var data = readFile(ファイル名);
var exc = new RegExp(lookForString);
If(exc.test(data))
console.log(ファイル名);

}
関数 isDirectory(ファイル名){
If(fs.existsSync(fileName)) return fs.statSync(fileName).isDirectory();
}
関数 isFile(ファイル名){
if(fs.existsSync(fileName)) return fs.statSync(fileName).isFile();
}
関数 readFile(ファイル名){
if(fs.existsSync(fileName)) return fs.readFileSync(fileName,"utf-8");
}

2 つのパラメーター: 最初のパラメーターは「フォルダー名」、2 番目のパラメーターは「探している文字列」です

写真:

ファイル パスを出力して完了です。それでは終わりです。そのスピードは本当に凄まじく、目もくらむほどです。 。 。 Javaの全文検索を使うと大変なことになります…

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。