我可以使用nodeJS fs.readFile读取位于同一目录中的多个zip文件吗?

时间:2018-11-08 13:17:57

标签: node.js fs zipfile jszip

我在一个名为“数据”的目录中有三个不同的zip文件。如果您解压缩,每个zip的结构都类似:它们都包含一个目录,并且该目录中有许多不同的csv文件。

我目前正在尝试使用'fs'模块中的readFile来使用以下功能将每个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文件中的所有数据都合并在一起。来自不同zip的csv都被读取,就好像它们来自单个zip。

我尝试将readFile传递给每个单独的zip文件的相对路径和绝对路径。这总是导致所有zip都被读为一个。

是否可以使用fs.readFile分别将每个zip读取到内存中?

感谢您的帮助!

0 个答案:

没有答案