How do I specify the compression level to gzip?

Is there a way I can specify the zip compression to "best compression" or "normal compression".

回答 (3 件)

Jan
Jan 2011 年 7 月 19 日

2 投票

This is the core method:
function zipLevel(ZIPFile, FileList, Level)
import java.io.*
import java.util.zip.*
import com.mathworks.mlwidgets.io.InterruptibleStreamCopier.*
if nargin < 3, Level = 6; end
% Create output stream and set the level of compression:
try
fileOut = FileOutputStream(ZIPFile);
catch
error(['*** ', mfilename, ': Cannot open for output: ', ...
char(10), ' ', ZIPFile]);
end
zipOut = ZipOutputStream(fileOut);
zipOut.setLevel(Level);
% This InterruptibleStreamCopier is unsupported and
% may change without notice.
StreamCopier = getInterruptibleStreamCopier;
% Append files to zip file:
FileList = cellstr(FileList);
for iFile = 1:numel(FileList)
aFile = FileList{iFile};
fileIn = FileInputStream(aFile);
zipObj = ZipEntry(aFile);
zipOut.putNextEntry(zipObj);
StreamCopier.copyStream(fileIn, zipOut);
fileIn.close;
zipOut.closeEntry;
end
zipOut.close;
fileOut.close;
This should be expanded by checking the the existence of file, getting the contents of folders and using a root folder for relative file names. Comments and file times can also be included by this method.

1 件のコメント

raym
raym 2018 年 4 月 19 日
Hi, I run your code and found that the filelist not compressed into the ZIPFile. instead, when I double click the zip file, it directly opens the D drive, and all the hard drive was indexed from here. But the file size is only 140kb.

サインインしてコメントする。

the cyclist
the cyclist 2011 年 7 月 19 日

0 投票

I don't know how to do this, but if you type
>> edit zip
you will get a bit more into the innards of the creation of the Java ZipEntry object, so maybe that will help.
Friedrich
Friedrich 2011 年 7 月 19 日

0 投票

Hi,
sry no you can't. At least without modifying the MATLAB Java code.

カテゴリ

ヘルプ センター および File ExchangeFinancial Toolbox についてさらに検索

製品

タグ

質問済み:

2011 年 7 月 19 日

コメント済み:

2018 年 4 月 19 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by