2012-07-09 322 views
1

我想搜索所有.doc文件的目錄和子目錄,並使用MatLab將它們全部壓縮到一個文件中。如果我使用zip() matlab函數,它只允許一個根目錄。 ZIP(ZIPFILENAME, FILES, ROOTDIR)MATLAB搜索和郵政編碼

1)如何遞歸搜索子目錄?

2)如何將所有zip文件添加到一個文件夾中?

是否最好搜索並將所有.doc文件移動到臨時文件夾中,然後從該位置壓縮它們?

+0

你爲什麼要在MATLAB中壓縮文件?這有點奇怪。 – chaohuang 2012-07-09 18:04:12

+0

是的,這更適合bash腳本。 – Squazic 2012-07-09 18:21:29

+0

我希望使用一個simulink塊,它將使用一個回調到.m腳本來收集所有模型報告doc文件並將它們壓縮到一個文件夾中。此外,我不使用Linux我在Windows PC上 – user1469906 2012-07-09 18:27:28

回答

0

首先,使用dos(...)爲所有.doc文件,包括所有子目錄(選項/S),但僅顯示文件名,沒有附加信息(選項/B)。所述第一輸出參數是返回的狀態,第二輸出參數是在命令行上返回的字符串:

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

其次,從該命令作爲單元陣列中提取文件名。文件名是由換行(\n)炭和路徑分隔可能包含空格,從而​​:

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

filenames那麼一個<1x1 cell>,包含文件名的字符串的<Nx1 cell>。有了這個<Nx1 cell>我們可以調用內置MATLAB函數​​:

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

完成。