MATLAB搜索和Zip

时间:2012-07-09 17:31:53

标签: matlab zip

我想搜索所有.doc文件的目录和子目录,并使用MatLab将它们全部压缩到一个文件中。如果我使用zip() matlab函数,它只允许一个根目录。  ZIP(ZIPFILENAME, FILES, ROOTDIR)

1)如何递归搜索子目录?

2)如何将所有zip文件添加到一个文件夹中?

最好是搜索并将所有.doc个文件移到临时文件夹中,然后从该位置压缩它们吗?

1 个答案:

答案 0 :(得分:0)

首先,对所有.doc文件使用dos(...) dir,包括所有子目录(选项/S),但只显示文件名,不显示其他信息(选项/B)。第一个输出参数是返回的状态,第二个输出参数是命令行返回的字符串:

[~, filenamesFromDos] = dos('dir *.doc /B/S');

其次,从该命令中提取文件名作为单元格数组。文件名由换行符(\n)char分隔,路径可能包含空格,因此'Whitespace',''

filenames = textscan(filenamesFromDos,'%s','Delimiter','\n','Whitespace','');

filenames<1x1 cell>,包含<Nx1 cell>个文件名字符串。使用此<Nx1 cell>,我们可以调用内置的matlab函数zip(...)

zip('zip_file.zip',filenames{1});

完成。