实现目标描述:选择我有一个大文件,里面有许多子文件夹,子文件夹内都是csv格式的文件,我现在将这个大文件内所有子文件夹的.csv文件的后缀名改为.sps文件
%author foddcus FAFU
%用法:批量修改文件后缀名
clear all
srcDir=uigetdir('Choose source directory.'); %获得选择的文件夹
cd(srcDir);%%更改根路径
files = dir(fullfile(srcDir));%检测是否有二级文件夹
folder_nums = size(files,1);
%%
for j=1:folder_nums-2%这里需要减2,因为头两个目标分别为本文件夹和其父级文件夹
names=getfield(files(j+2),'name');%参考(2)
newfile=[srcDir,'\',names]%组成新文件夹的名称
cd(newfile);
file = dir('*.csv');
len = length(file);
for i = 1 : len %参考(1)处
oldname0 = string(file(i).name);
oldname = strcat(',',oldname0);%strcat - 水平串联字符串
Date=string(regexp(oldname,'.*(?=\.csv)','match'));
newname = strcat(Date,'.sps');
eval(['!rename',char(oldname),char(newname)]);%要用char
end
end
执行以上脚本,会自动跳出文件路径的选择框,只用在案例中选中4-23_1这个文件夹即可
执行脚本完后:所有只文件内的.csv文件的后缀名都变为了.sps
基本上对这个脚本进行根据自身需求的一些修改就可以满足所有类型的批量修改文件名后缀的需求了
程序参考
(1)利用matlab批量修改文件名称或后缀_天才小傲傲的博客-CSDN博客_matlab修改文件后缀
(2)matlab用字符串按名索引结构体(struct)的成员变量(field)_HackerTom的博客-CSDN博客_matlab 字符串索引