matlab 批量对文件(图片)、文件夹重命名
clc;clear all;
basePath = 'D:\test\';
folder=dir(basePath);%当前路径的文件名,包含根目录 basePath一级路径文件名
oldname=cell(length(folder)-2,1);
for ii=3:length(folder)
oldname{ii-2}=folder(ii).name; %当前路径下的文件名 二级路径文件名
end
% 通过包含关系,用新的名称替换对应的旧名称
for i = 1:length(oldname)
everyPicFolder = strcat(basePath,oldname{i},'\');
everyfolder=dir(everyPicFolder);
trueEveryfolder = everyfolder(3:end);
Everyfolder=cell(length(trueEveryfolder),1);%三级路径文件名
for jj=1:length(trueEveryfolder)
Everyfolder{jj}=trueEveryfolder(jj).name;%三级路径文件名
end
for j = 1:length(Everyfolder)%子文件夹下的文件个数
imagePath = strcat(everyPicFolder,Everyfolder{j},'\');%子文件夹下的文件的路径
imagefiles = dir([imagePath '*.jpg']);%二级子文件夹下的图像
imagefilesnew=cell(length(imagefiles),1);
for aa=1:length(imagefiles)
imagefilesnew{aa}=imagefiles(aa).name;%当前图像的名字
OName = strcat(imagePath,imagefilesnew{aa});
%I = imread(strcat(imagePath,imagefilesnew{aa}));%读取当前文件的名字
NName = strcat(everyPicFolder,int2str(j),imagefilesnew{aa});
%imwrite(I,[everyPicFolder,int2str(i),imagefilesnew{aa},'.jpg']);
movefile(OName,NName);
end
end
end