1

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

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

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

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

4

1 回答 1

1

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

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

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

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

filenames然后是 a <1x1 cell>,包含一个<Nx1 cell>文件名字符串。有了这个<Nx1 cell>我们可以调用内置的matlab函数zip(...)

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

完毕。

于 2012-08-23T06:32:30.893 回答