fs.readdirSync는 얼마나 빠릅니까? 속도를 높일 수 있나요?
<p>fs.readdirSync를 사용하여 디렉터리의 모든 파일을 재귀적으로 가져오는 함수가 있습니다.
테스트로 실행한 작은 디렉터리에서는 잘 작동했지만 지금은 100GB가 넘는 디렉터리에서 실행 중이고 완료하는 데 시간이 오래 걸립니다. 속도를 높이는 방법이나 더 좋은 방법이 있는지에 대한 아이디어가 있습니까? 결국에는 테라바이트 규모의 데이터가 포함된 일부 디렉터리에서 이 작업을 실행해야 합니다. </p>
<pre class="brush:php;toolbar:false;">// 파일을 가져오는 재귀 함수
함수 getFiles(dir, 파일 = []) {
// fs.readdirSync를 사용하여 전달된 디렉터리에 있는 모든 파일과 디렉터리의 배열을 가져옵니다.
const fileList = fs.readdirSync(dir);
// 전달된 디렉터리와 파일/디렉터리 이름을 연결하여 파일/디렉터리의 전체 경로를 생성합니다.
for(fileList의 const 파일) {
const 이름 = `${dir}/${file}`;
// fs.statSync를 사용하여 현재 파일/디렉토리가 디렉터리인지 확인합니다.
if (fs.statSync(이름).isDirectory()) {
// 디렉토리인 경우 디렉토리 경로와 파일 배열을 사용하여 getFiles 함수를 재귀적으로 호출합니다.
getFiles(이름, 파일);
} 또 다른 {
// 파일인 경우 파일 배열의 전체 경로를 푸시합니다.
files.push(이름);
}
}
파일 반환;
}</pre></p>