Matlab将文件分类移动到不同文件夹中

一个文件夹中有很多后缀名一样的文件,比如说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中

  

 

posted @ 2020-03-09 21:52  icydengyw  阅读(2140)  评论(0编辑  收藏  举报