Я использую zlib вместе с fstream теперь для zipping и отправки клиенту. Теперь мне нужно разархивировать архив (который может содержать подпапки) в папку, поддерживающую структуру папок. Как мне это сделать?Как распаковать файл .zip/.rar в Node.js в папку
ответ
Существует множество модулей узлов, которые могут сделать это за вас. Один из них - unzip узла. Вы можете извлечь .zip-файл в каталог так же просто, как это.
fs.createReadStream('path/to/archive.zip').pipe(unzip.Extract({ path: 'output/path' }));
Дальнейшее чтение: https://github.com/EvanOxfeld/node-unzip
Могу ли я сделать то же самое с zlib, не используя unzip? – Raghavendra
@Raghav Я считаю, что zlib предназначен для обработки GZip, а не Zip. – gpopoteur
@gpopoteur Привет, я знаю, что это сообщение довольно старое, но это действительно полезно для меня. Можете ли вы рассказать мне, как я могу знать, когда все это fs.createReadStream ('путь/to/archive.zip'). Pipe (unzip.Extract ({path: 'output/path'})); отделки? Я хочу что-то сделать после его завершения :) –
Рар представляет собой программное обеспечение с закрытым кодом. Единственный способ, которым Вы можете сделать это - установить командную строку RAR (rar.exe или Линукс версию RAR, который доступен на большинстве платформ) и вызвать его с помощью этого:
var exec = require('child_process').exec;
exec("rar.exe x file.rar", function (error) {
if (error) {
// error code here
} else {
// success code here
}
});
вы можете использовать это удивительный модуль http://node-machine.org/machinepack-zip
для распаковки архива со структурой каталогов внутри почтового
var Zip = require('machinepack-zip');
// Распакуйте указанный файл .zip и писать распакованные файлы/каталоги, содержимое указанной директории назначения.
Zip.unzip({
source: '/Users/mikermcneil/stuff.zip',
destination: '/Users/mikermcneil/my-stuff',
}).exec(callbackSuccess, callbackFail);
для загрузки удаленного файла и разархивировать вы можете использовать этот код:
var fs = require('fs');
var unzip = require("unzip2");
var tar = require('tar');
var zlib = require('zlib');
var path = require('path');
var mkdirp = require('mkdirp'); // used to create directory tree
var request = require("request");
var http = require('http');
var zip = require("machinepack-zip");
for (var i = 0; i < _diff.length; i++) {
request(constants.base_patch +"example.zip")
request = http.get({ host: 'localhost',
path: '/update/patchs/' + "example.zip",
port: 80,
headers: { 'accept-encoding': 'gzip,deflate' } });
request.on('response', (response) => {
var output = fs.createWriteStream(__dirname + "/tmp/" +"example.zip");
switch (response.headers['content-encoding']) {
// or, just use zlib.createUnzip() to handle both cases
case 'gzip':
response.pipe(zlib.createGunzip()).pipe(unzip.Extract({ path: __dirname }));
break;
case 'deflate':
response.pipe(zlib.createInflate()).pipe(unzip.Extract({ path: __dirname }));
break;
default:
response.pipe(output);
break;
}
})
request.on('close', function(){
zip.unzip({
source: __dirname + "/tmp/" + "example.zip",
destination: __dirname,
}).exec({
error: function (err){
alert("error")
},
success: function(){
//delete temp folder content after finish uncompress
},
});
})
}
Примечание: удалить unnecesary модули.
- 1. Как распаковать файл или папку в java?
- 2. Как распаковать папку в Jelatics?
- 3. Как распаковать/распаковать файл .z
- 4. Невозможно распаковать файлы в папку
- 5. Как распаковать файл в целевую папку с помощью 7-Zip
- 6. Java ZIP - как распаковать папку?
- 7. Как распаковать папку с симлинками
- 8. Jetty: распаковать .war в определенную папку
- 9. Как распаковать файл в fortran77?
- 10. как распаковать файл в python?
- 11. Как распаковать файл в Powershell?
- 12. Как распаковать файл в hadoop?
- 13. Распаковать в папку во внутреннем хранилище
- 14. Как распаковать ZIP-файл в Windows Mobile?
- 15. Как распаковать папку и удалить zipped оригинал?
- 16. Maven распаковать транзитные зависимости JAR в папку
- 17. Невозможно распаковать папку цели c
- 18. Как распаковать защищенный паролем файл в vbscript?
- 19. распаковать файл в flex?
- 20. Не удалось распаковать папку установки
- 21. Как распаковать файл на javascript
- 22. node.js gzip распаковать xmlhttprequesr.responseText
- 23. Maven распаковать войну в папку назначения
- 24. Как распаковать файл msgpack?
- 25. Как распаковать файл .img?
- 26. Как распаковать файл lzo_deflate?
- 27. Как распаковать файл .Z
- 28. Как распаковать файл
- 29. Как распаковать файл gzipped
- 30. Как распаковать файл?
Привет Могу ли я знать, как сжать всю папку в один ZIP-файл. Я пытаюсь использовать fstream.Reader ({path: "E: \\ d data \\ electronic \\ Applications \\ FirstApp \\ js \\ temp \\", type: "Directory"}) \t .pipe (новый tar.Pack()) \t .pipe (zlib.Gzip()) \t .pipe (fstream.Writer ({path: "C: \\ Users \\ Raina \\ AppData \\ Local \\ Temp", файл: 'compress_folder.tar.gz'})); но я получаю сообщение об ошибке. –