How do I specify the compression level to gzip?
4 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Is there a way I can specify the zip compression to "best compression" or "normal compression".
0 Commenti
Risposte (3)
Jan
il 19 Lug 2011
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 Commento
raym
il 19 Apr 2018
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
il 19 Lug 2011
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.
0 Commenti
Friedrich
il 19 Lug 2011
Hi,
sry no you can't. At least without modifying the MATLAB Java code.
0 Commenti
Vedere anche
Categorie
Scopri di più su Instrument Control Toolbox Supported Hardware in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!