一個文件夾中有很多后綴名一樣的文件,比如說tiff文件,想根據命名中的分類規律分別把這些文件移動到不同的文件夾中進行歸類。
原始文件:
分別想要放到這四個文件夾中:
clc clear all filePath = 'E:\1SMAPDATA\MOD11A1_test\Category';%四個文件夾的上一級文件夾 files = dir(filePath); oldName = cell(length(files)-2,1); for i = 3:length(files) oldName{i-2} = files(i).name;%得cell時間數組 end fileFolder=fullfile('E:\1SMAPDATA\MOD11A1_test');%需要分類的tiff文件所在的文件夾 dirOutput=dir(fullfile(fileFolder,'*.tif')); %把tiff文件列舉出來 fileNames={dirOutput.name}'; %得到tiff文件的名字數組 for i = 1:length(oldName) %遍歷每一個文件夾的名字 for j=1:length(fileNames) %遍歷每一個tiff文件 mid=strsplit(fileNames{j},'.'); %使用'.'分隔符對tiff文件名進行分隔 if strcmp(char(mid(2)),oldName{i}) %取第二個分隔字段和文件夾的名字進行比較 DST_PATH_t = [filePath ,'\',oldName{i},'\'];%對應文件夾的完整路徑 movefile([fileFolder,'\',fileNames{j}],DST_PATH_t); %移動tiff文件到文件夾 注意這里都是完整路徑 end end end
結果:
另外:
% 假設當前文件夾中有: 文件夾1,文件1.txt, 文件2.txt movefile('1.txt', '11.txt'); %把1.txt剪切成11.txt,1.txt不存在了,實際上相當於改名 copyfile('2.txt', '22.txt'); % 把2.txt復制成22.txt,2.txt依然存在 movefile('11.txt', '1'); % 把11.txt剪切到文件夾1中