Могу ли я использовать nodeJS fs.readFile для чтения нескольких zip-файлов, расположенных в одном каталоге? - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть три разных zip-файла, расположенных в одном каталоге под названием «data». Каждый zip имеет схожую структуру, если вы распакуете его: все они содержат один каталог, а внутри каталога много разных файлов csv.

В настоящее время я пытаюсь использовать readFile из модуля 'fs' для чтения каждого zip-файла индивидуально в память как буфер узла, используя следующую функцию:

/**
 * Wraps readFile in a promise.
 * @param path The location of the file to read: absolute path.
 * @returns A buffer containing the contents of the file.
 */
public static readFileAsync(path: string): Promise<Buffer> {
    return new Promise<Buffer>((resolve, reject) => {
        fs.readFile(path, (err, data) => {
            if (err) {
                reject(err);
            }

            resolve(data);
        });
    });
}

После получения данных я хочу преобразовать их в base64. После преобразования в base64 я использую библиотеку JSZip для разбора base64 на объекты js.

Все это работает нормально, пока я не изучу результаты анализа строк base64: Все данные в моих отдельных zip-файлах объединены вместе . Все csvs из разных почтовых индексов читаются так, как если бы они исходили из одного почтового индекса.

Я попытался передать readFile как относительный, так и абсолютный путь к каждому отдельному zip-файлу. Это всегда приводит к тому, что все почтовые индексы читаются как один.

Можно ли использовать fs.readFile для чтения каждого zip-файла по отдельности в память?

Спасибо за любую помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...