요구사항은 다음과 같습니다.
전체 디렉터리에 40M 정도 있고, 파일도 셀 수 없이 많아서 오래되어서 어느 파일에 문자열이 들어 있는지 기억이 나지 않습니다. 강력하고 눈부신 Node.js가 데뷔합니다.
Windows에 Node.js를 설치하는 것은 일반 소프트웨어를 설치하는 것과 다르지 않습니다. 설치 후 Node.js의 바로가기를 열거나 직접 cmd를 열면 됩니다.
findString.js 생성
var 경로 = require("경로");
var fs = require("fs");
var filePath = process.argv[2];
var lookingForString = process.argv[3];
recursiveReadFile(filePath);
함수 recursiveReadFile(파일 이름){
if(!fs.existsSync(파일 이름)) return;
if(is파일(파일 이름)){
check(파일이름);
}
if(isDirectory(파일 이름)){
var 파일 = fs.readdirSync(fileName);
files.forEach(함수(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( lookingForString);
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");
}
두 개의 매개변수: 첫 번째 매개변수는 "폴더 이름"이고 두 번째 매개변수는 "찾고 있는 문자열"
사진:
파일 경로를 인쇄하고 완료하고 하루를 보내세요. 속도가 정말 맹렬하고 눈이 부시네요. . . 자바 전문검색을 이용하시면 곤란합니다...