ZipArchiveMode.Update永远不会为非常大的文件完成

时间:2015-07-08 10:00:34

标签: c# zipfile ziparchive

我有这段代码,其中<html> <head> <!-- Latest compiled and minified CSS --> <link rel="stylesheet" href="css/bootstrap.min.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-table/1.8.1/bootstrap-table.css"> <!-- Latest compiled and minified JavaScript --> <script src="js/jquery.min.js"></script> <script src="js/bootstrap.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-table/1.8.1/bootstrap-table.js"></script> </head> <body> <div style="margin : 100px;"> <button class="btn-primary btn" onclick="load();" >Load Table</button> <button class="btn-primary btn" onclick="reload();">Update Table</button> </div> <table class="table" id="table"> <thead> <tr> <th data-field="id">Item ID</th> <th data-field="name">Item Name</th> <th data-field="price">Item Price</th> </tr> </thead> </table> <script> $('#table').bootstrapTable({}); function load(){ var data = [{ id: 1, name: 'Item 1', price: '$1' }, { id: 2, name: 'Item 2', price: '$4' }]; $('#table').bootstrapTable("load", data); } function reload(){ var data = [{ id: 3, name: 'Item 3', price: '$2' }, { id: 4, name: 'Item 4', price: '$6' }]; $('#table').bootstrapTable("load", data); } </script> </body> </html> 是现有的Zip文件,zipfilename是我要压缩的文件,sourceFile是存档条目名称。

filename

这适用于小文件,不大于50KB。对于这些,文件被压缩到存档没有问题。我可以添加尽可能多的小文件。

但对于1.8GB大小的超大文件,内存消耗最多可达数GB,文件实际上从未压缩到存档中。

如何更好地处理将大型文件压缩到现有目标存档中?请注意,我需要使用现有的目标zip / archive文件,它必须是.zip。

1 个答案:

答案 0 :(得分:1)

我知道这有点太迟了。但是,不是使用ZipArchiveMode.Update,为什么不将存档文件解压缩到临时文件夹中,使用ZipArchiveMode.Create删除zip文件并将所有文件(包括临时文件夹中的文件)压缩在一起(如果你正在使用现有的拉链)。这将是一个更快的过程,可以处理更大的目标拉链。