在matlab中从zip中提取特定文件

时间:2015-07-02 09:06:23

标签: matlab zip extract

目前我有一个包含数千个.xml文件的zipfile,提取的文件夹大小为1.5GB。 我有一个函数将数据与此zip文件中的特定文件进行匹配。然后,我想阅读此特定文件并提取其他数据。

我的问题: 有没有办法从存档中提取这些特定文件而不解压缩整个存档?

内置的unzip.m函数只能用于解压缩整个文件,因此无法工作,所以我想我必须使用COM接口或其他方法。

Matlab版本:R2013a

在搜索解决方案时,我发现了这一点:Read the data of CSV file inside Zip File without extracting the contents in Matlab

但我无法在答案中获得适合我情况的代码

编辑:

归功于Hoki和Intelk

zipFilename = 'HMDB.zip';
zipJavaFile = java.io.File(zipFilename);
zipFile=org.apache.tools.zip.ZipFile(zipJavaFile);
entries=zipFile.getEntries;
cnt=1;
while entries.hasMoreElements
    tempObj=entries.nextElement;
    file{cnt,1}=tempObj.getName.toCharArray';
    cnt=cnt+1;
end
ind=regexp(file,'$*.xml$');
ind=find(~cellfun(@isempty,ind));
file=file(ind);
file = cellfun(@(x) fullfile('.',x),file,'UniformOutput',false);

不要忘记

zipFile.close

0 个答案:

没有答案