使用NPM的unzip module:
转换时,转换后的文件名为doc.xml
,因为未压缩的xml文件。
不想使用doc
这个名字,
'use strict';
var fs = require('fs')
var unzip = require('unzip')
convert(process.argv[2], process.argv[3])
function convert(path, fileName) {
fs.createReadStream(path)
.pipe(unzip.Extract({ path: '/users/*****/desktop/templatexml/' + fileName + '.xml' }))
}
然后运行:
node /Users/*****/Desktop/converter/converter.js /Users/******/Desktop/template/103.zip 103
但是结果将始终为"fileName.xml/doc.xml"
"fileName.xml"
显示为目录名称。
想要更改doc
部分。
如果可能,希望从原始文件路径获取文件名。
内部process.argv [2]就像
"/Users/*****/Desktop/template/fileName.zip"
想从这里获取文件名。
谢谢您的评论,像这样。 但是没用。
'use strict';
var fs = require('fs')
var unzip = require('unzip')
convert(process.argv[2])
function convert(path) {
fs.createReadStream(path)
.pipe(unzip.Parse())
.on('entry', function(entry) {
var fileName = entry.path;
var type = entry.type; // 'Directory' or 'File'
var size = entry.size;
if (fileName === "this IS the file I'm looking for") {
entry.pipe(fs.createWriteStream('/users/*****/desktop/templatexml/'));
} else {
entry.autodrain();
}
});
}
答案 0 :(得分:1)
fs.createReadStream('path/to/archive.zip')
.pipe(unzip.Parse())
.on('entry', function (entry) {
var fileName = entry.path;
var type = entry.type; // 'Directory' or 'File'
var size = entry.size;
if (fileName === "this IS the file I'm looking for") {
entry.pipe(fs.createWriteStream('output/path'));
} else {
entry.autodrain();
}
});