标签: zipfile

在Node.js中解压缩受密码保护的文件

是否有一个库可以用来解压缩受密码保护的文件(网站下载时我会在文件上输入密码)?有大量的库可以解压缩普通文件,但我找不到任何可以使用密码的文件.

在这里,我找到了一些有用的开始.但我宁愿不使用child_process和使用内置的unix解压缩功能,但这可能是我的最后手段.我甚至会在加密代码上执行自己的操作,但我甚至无法确定如何确定加密类型(它似乎非常标准,因为我可以在终端中执行).

我宁愿不这样做,但我担心这是我唯一的选择,所以我尝试了以下方法:

var fs = require('fs')
, unzip = require('unzip')
, spawn = require('child_process').spawn
, expand = function(filepath, cb) {
     var self = this
     , unzipStream = fs.createReadStream(filepath).pipe(unzip.Parse())
     , xmlData = '';

     unzipStream.on('entry', function (entry) {
            var filename = entry.path;
           // first zip contains files and one password protected zipfile. 
           // Here I can just do pipe(unzip.Parse()) again, but then i just get a giant encoded string that I don't know how to handle, so i …
Run Code Online (Sandbox Code Playgroud)

unzip zipfile node.js

14
推荐指数
2
解决办法
3949
查看次数

"zipfile"这个名称在当前上下文中不存在

我有一个可以按原样运行的SSIS项目,但是当我尝试编辑它时,我收到一个错误:

"zipfile"这个名称在当前上下文中不存在

没有编辑,它工作正常.

产生错误的代码:

public void Main()
{
    // TODO: Add your code here
    string moduleName = Dts.Variables["User::ModuleName"].Value.ToString();
    string s = Dts.Variables["User::ZipFileLocation"].Value.ToString().TrimEnd('\\') + "\\" + moduleName + "\\" + moduleName + "_" + DateTime.Now.ToString("ddMMyyyy");

    // TODO: Add your code here
    string startPath = s;
    string zipPath = s + ".zip";

    try
    {
        File.Delete(zipPath);
        ZipFile.CreateFromDirectory(startPath, zipPath);
    }
    catch (Exception e)
    {
    }

    Dts.TaskResult = (int)ScriptResults.Success;
}
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

c# ssis zipfile

14
推荐指数
2
解决办法
1万
查看次数

如何在Android中创建ZIP InputStream而不先创建ZIP文件?

我在我的Android APP中使用NanoHTTPD作为Web服务器,我希望在服务器端压缩一些文件并创建一个InputStream,然后使用Code A在客户端下载InputStream.

我在如何压缩和解压缩文件中读过代码B ,但如何在Android中创建ZIP InputStream而不首先创建ZIP文件?

顺便说一句,我不认为Code C是好方法,因为它先制作ZIP文件,然后将ZIP文件转换为FileInputStream,我希望直接创建一个ZIP InputStream!

代码A.

private Response ActionDownloadSingleFile(InputStream fis)    {      
    Response response = null;
    response = newChunkedResponse(Response.Status.OK, "application/octet-stream",fis);
    response.addHeader("Content-Disposition", "attachment; filename="+"my.zip");
    return response;
}
Run Code Online (Sandbox Code Playgroud)

代码B.

public static void zip(String[] files, String zipFile) throws IOException {
    BufferedInputStream origin = null;
    ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(zipFile)));
    try { 
        byte data[] = new byte[BUFFER_SIZE];

        for (int i = 0; i < files.length; i++) {
            FileInputStream fi = new FileInputStream(files[i]);    
            origin = new BufferedInputStream(fi, …
Run Code Online (Sandbox Code Playgroud)

java android zipfile fileinputstream fileoutputstream

14
推荐指数
1
解决办法
2110
查看次数

压缩大文件时使用ZIP64扩展的Python

我有一个压缩输出文件的脚本.问题是其中一个文件超过4Gigs.如何将我的脚本转换为使用ZIP64扩展而不是标准zip?

这是我目前如何拉链:

try:
    import zlib
    compression = zipfile.ZIP_DEFLATED
except:
    compression = zipfile.ZIP_STORED

modes = { zipfile.ZIP_DEFLATED: 'deflated',
          zipfile.ZIP_STORED:   'stored',
          } 

compressed_name = 'edw_files_' + datetime.strftime(date(), '%Y%m%d') + '.zip' 
print 'creating archive'
zf = zipfile.ZipFile('edw_files_' + datetime.strftime(date(), '%Y%m%d') + '.zip', mode='w')
try:
    zf.write(name1, compress_type=compression)
    zf.write(name2, compress_type=compression)
    zf.write(name3, compress_type=compression)
finally:
    print 'closing'
    zf.close()
Run Code Online (Sandbox Code Playgroud)

谢谢!法案

python zip zlib zipfile

13
推荐指数
2
解决办法
1万
查看次数

从 ReactJs/Axios 下载的 Zip 文件已损坏

我正在尝试从 Django api 下载一个 zip 文件并让用户下载它。zip 中有两个 .csv 文件。

我可以单独下载单个 .csv 文件,但是当我尝试下载 zip 并解压缩时,我收到 zip 已损坏的错误。对于健全性检查,我可以通过邮递员发送请求。我能够使用它成功下载和解压缩文件。

这是我的代码片段:

        axios
        .post('http://0.0.0.0:8000/sheets/', data,
            {
                headers: {
                    'Content-Type': 'multipart/form-data',
                    'responseType': 'arraybuffer'
                }
            })
        .then(res => {
            console.log(res.data)
            const disposition = res.request.getResponseHeader('Content-Disposition')
            var fileName = "";
            var filenameRegex = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/;
            var matches = filenameRegex.exec(disposition);
            if (matches != null && matches[1]) {
                fileName = matches[1].replace(/['"]/g, '');
            }
            let blob = new Blob([res.data], { type: 'application/zip' })

            const downloadUrl = URL.createObjectURL(blob)
            let a = document.createElement("a"); 
            a.href = …
Run Code Online (Sandbox Code Playgroud)

django zip zipfile reactjs axios

13
推荐指数
2
解决办法
6545
查看次数

如何将Python StringIO()对象传递给ZipFile(),还是不受支持?

所以我有一个StringIO()类似文件的对象,我正在尝试将其写入a ZipFile(),但是我得到了这个TypeError:

coercing to Unicode: need string or buffer, cStringIO.StringI found
Run Code Online (Sandbox Code Playgroud)

以下是我正在使用的代码示例:

file_like = StringIO()
archive = zipfile.ZipFile(file_like, 'w', zipfile.ZIP_DEFLATED)

# my_file is a StringIO object returned by a remote file storage server.
archive.write(my_file)
Run Code Online (Sandbox Code Playgroud)

文档说这StringIO()是一个类文件类,ZipFile()可以接受类文件对象.有什么我想念的吗?任何帮助将不胜感激.

提前致谢!

python zipfile stringio

11
推荐指数
1
解决办法
6809
查看次数

System.IO.Compression.ZipFile UnauthorizedAccessException

我正在尝试使用.NET 4.5 ZipFile类和CreateFromDirectory(字符串,字符串)方法备份一些文件.我收到了UnauthorizedAccessException - Access Denied.我可以成功读取该目录中的所有文件,也可以将文件写入该目录.所以我认为权限设置正确.有关为什么我在ZipFile类上被拒绝访问的想法?

static void Main(string[] args)
{
    string backupLocation = @"C:\Backups";
    string directoriesToBackup = @"F:\myMedia\myPictures\Our Family\2012\Misc";

    try
    {
        ZipFile.CreateFromDirectory(directoriesToBackup, backupLocation);
    }
    catch (System.UnauthorizedAccessException e) 
    {
        Console.WriteLine(e.Message);
    }

    DirectoryInfo di = new DirectoryInfo(@"F:\myMedia\myPictures\Our Family\2012\Misc");
    File.Create(@"F:\myMedia\myPictures\Our Family\2012\Misc\testCreateFromVs.txt");
    foreach (FileInfo i in di.GetFiles())
    {
        Console.WriteLine(i.Name);
    }

    Console.ReadKey();

}
Run Code Online (Sandbox Code Playgroud)

.net zipfile

11
推荐指数
1
解决办法
8673
查看次数

更快地替代Python的zipfile模块?

是否有一个明显更快的替代Python 2.7.4 zipfile模块(使用ZIP_DEFLATED)将大量文件压缩成单个zip文件?我看了一下czipfile https://pypi.python.org/pypi/czipfile/1.0.0,但这似乎集中在更快的解密(不压缩)上.

我经常需要处理大量的图像文件(大约12,000个.exr和.tiff文件组合的文件),每个文件大小在1MB到6MB之间(所有文件大约为9GB)到一个文件中zip文件用于发货.这种压缩处理需要大约90分钟(在Windows 7 64位上运行).

如果有人可以推荐一个不同的python模块(或者一个C/C++库甚至是一个独立的工具),它能够在比zipfile模块更短的时间内将大量文件压缩成单个.zip文件,那就是非常感谢(任何接近〜5-10%更快(或更多)的东西都会非常有帮助).

python performance zipfile

11
推荐指数
1
解决办法
6813
查看次数

使用Python将文件列表添加到zip文件中

我想写一个脚本将所有'.py'文件添加到一个zip文件中.

这是我有的:

import zipfile
import os

working_folder = 'C:\\Python27\\'

files = os.listdir(working_folder)

files_py = []

for f in files:
    if f[-2:] == 'py':
        fff = working_folder + f
        files_py.append(fff)

ZipFile = zipfile.ZipFile("zip testing.zip", "w" )

for a in files_py:
    ZipFile.write(a, zipfile.ZIP_DEFLATED)
Run Code Online (Sandbox Code Playgroud)

但是它给出了一个错误:

Traceback (most recent call last):
  File "C:\Python27\working.py", line 19, in <module>
    ZipFile.write(str(a), zipfile.ZIP_DEFLATED)
  File "C:\Python27\lib\zipfile.py", line 1121, in write
    arcname = os.path.normpath(os.path.splitdrive(arcname)[1])
  File "C:\Python27\lib\ntpath.py", line 125, in splitdrive
    if p[1:2] == ':':
TypeError: 'int' object has no attribute …
Run Code Online (Sandbox Code Playgroud)

python zipfile

11
推荐指数
2
解决办法
9622
查看次数

将文件添加到现有zipfile

我正在使用python的zipfile模块.
将zip文件放在以下路径中:
/home/user/a/b/c/test.zip
/home/user/a/b/c/1.txt 我想要将此文件添加到现有zip的情况下创建另一个文件时,我做了:
zip.write(os.path.basename('/home/user/a/b/c/1.txt'))

在解压缩文件时,所有子文件夹都出现在路径中,如何在没有路径的子文件夹的情况下输入zip文件?

我也尝试过: zipfile 并且得到了一个错误,该文件不存在,尽管它确实存在.

注意:我没有在路径中使用硬编码值,在本例中只是为了简化它.

python zipfile

11
推荐指数
2
解决办法
8734
查看次数