我在一个名为“数据”的目录中有三个不同的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读取到内存中?
感谢您的帮助!