2015-02-08 41 views
1

因此,我需要爲多個不同的文件夾解壓過多文件(通過gzip命令),可以說文件夾1到200(名稱文件夾1到文件夾200)。這些文件夾(1到200)位於其他父文件夾內:Parentfolder1-Parentfolder200,可以說。結構會去這樣的:如何閱讀併爲多個不同文件夾的多個文件執行特定命令

Parentfolder1 - >文件夾1 - >文件,這都將是未壓縮的(gzip的*。廣州)
Parentfolder1 - >文件夾2 - >文件



Parentfolder1 - > folder200 - >文件
Parentfolder2 - >文件夾1 - >文件


Parentfolder200 - > folder200 - >文件


我有一些困難,從文件夾中瀏覽到文件夾,Parentfolder到Parentfolder進行必要用一個簡單的命令使用dir命令做環。什麼是實現這一目標的最佳方式?先謝謝你。

+0

「.gz」類型的每個文件夾中的所有文件?或者您是否需要根據擴展名選擇適當的文件? – 2015-02-08 03:47:04

+0

是的,每個文件的擴展名爲.gz,並且是文件夾中的唯一文件 – 2015-02-09 04:13:52

回答

0

對於這種類型的任務,我喜歡使用fileattrib。該函數的輸入是父文件夾名稱。如果以\*結束該名稱,則fileattrib函數將以遞歸方式工作並返回文件和文件夾的所有層次結構(可能需要一些時間)。至少在Windows中會發生這種情況。

所以你可以沿着這些線使用一些東西。在下面的代碼中,應用於每個文件的處理僅包括顯示其全名(路徑);在你的情況下,你將應用所需的命令。

root_folder = 'your\root\folder'; %// root folder of all files you want to process 
extension = '.gz'; %// process only files whose name ends with this string 
e = numel(extension); 
[status, files] = fileattrib([root_folder '\*']); %// add '\*' 
for n = 1:numel(files) 
    if ~files(n).directory &&... 
     numel(files(n).Name)>=e &&... 
     all(files(n).Name(end-e+1:end)==extension) 
     %// file(n) is of the desired type. Do domething with it. 
     %// Its full name (path) is given by files(n).Name 
     disp(files(n).Name) %// in this example we only display its full name 
    end 
end