Node.js opendir을 사용하여 디렉토리의 파일을 효율적으로 읽습니다.

원래published on my blog .


최근에 저는 각 파일에 대해 몇 가지 작업을 수행하기 위해 매우 큰 디렉토리의 내용을 스캔해야 했습니다.

나는 이 작업이 가능한 한 빠르기를 원했기 때문에 디렉토리의 모든 파일을 한 번에 읽는 표준 fsPromises.readdir 또는 fs.readdirSync 을 사용하면 전체 디렉토리가 읽힐 때까지 기다려야 한다는 것을 알았습니다. 각 파일에서 작동합니다.

대신 파일이 발견되는 순간에 작업을 수행하고 싶었습니다.

이 문제를 해결하기 위해 opendir (추가된 v12.12.0 ) 발견된 각 파일을 반복합니다.

import { opendirSync } from "fs";

const dir = opendirSync("./files");
for await (const entry of dir) {
    console.log("Found file:", entry.name);
}


fsPromises.opendir / openddirSync 은 디렉토리의 모든 파일에 대해 Dir (디렉토리 항목)을 반환하는 iterable인 Dirent 의 인스턴스를 반환합니다.

이것은 모든 파일이 수집될 때까지 기다리지 않고 발견된 대로 각 파일을 반환하기 때문에 더 효율적입니다.

간단한 Node.js 팁 🪄


더 많은 웹 개발 및 시작 관련 콘텐츠를 보려면 나를 팔로우하고 Github

좋은 웹페이지 즐겨찾기