下面列出的代码搜索
在其目录/子目录下包含指定的字符串。
要激活它,请键入
节点[jsfilename][文件夹][文件名][扩展名]
我还想宣布:
未找到任何内容
在控制台中。每次
找不到单词。
我试过了
if (!regex.test(fileContent)) {
console.log(`Noting found`);
只有当您有一个没有word的文件时,它才起作用,如果没有word,它就会循环。
例如,如果您有4个文件,其中一个文件具有将显示的字符串
在目录:[文件]中找到了您的单词
已找到注释
已找到注释
已找到注释
.
那么,我怎样才能在一次之后停止循环
!found
安慰日志,如果发现了什么,我如何防止它显示?
const path = require('path');
const fs = require('fs');
function searchFilesInDirectory(dir, filter, ext) {
if (!fs.existsSync(dir)) {
console.log(`Specified directory: ${dir} does not exist`);
return;
}
const files = fs.readdirSync(dir);
const found = getFilesInDirectory(dir, ext);
found.forEach(file => {
const fileContent = fs.readFileSync(file);
const regex = new RegExp('\\b' + filter + '\\b');
if (regex.test(fileContent)) {
console.log(`Your word was found in directory: ${file}`);
}
});
}
function getFilesInDirectory(dir, ext) {
if (!fs.existsSync(dir)) {
console.log(`Specified directory: ${dir} does not exist`);
return;
}
let files = [];
fs.readdirSync(dir).forEach(file => {
const filePath = path.join(dir, file);
const stat = fs.lstatSync(filePath);
if (stat.isDirectory()) {
const nestedFiles = getFilesInDirectory(filePath, ext);
files = files.concat(nestedFiles);
} else {
if (path.extname(file) === ext) {
files.push(filePath);
}
}
});
return files;
}
searchFilesInDirectory(process.argv[2], process.argv[3], process.argv[4]);