利用matlab访问文件夹中的文件以及更改文件名

imgDir=dir('*.*');
for i=3:length(imgDir)
    nameSplit=strsplit(imgDir(i).name,'_');
    if length(nameSplit)>1
        if strcmp( nameSplit{2}(1:2), 'IR')
            eval(['!rename' 32 imgDir(i).name 32 [num2str(i-2) '_IR.bmp']]);
        end
    end
end

1.文件夹访问

访问文件夹中的子文件,*.*表示所有类型所有名称的文件名,

imgDir=dir('*.*');

使用dir函数后会得到struct类型的变量,使用.name就可以获取文件名了,需要注意的是,前两个是文件目录,在遍历的时候需要跳过
在这里插入图片描述
在这里插入图片描述

2.更改文件名

使用rename关键字对文件进行重命名,32表示空格的意思,这里感觉像个命令函数,通过Win10命令对文件进行操作

eval(['!rename' 32 imgDir(i).name 32 [num2str(i-2) '_IR.bmp']]);

详细解释一下:

eval:执行命令
!rename:重命名
32:空格
imgDir(i).name:获取第i个文件的文件名
num2str(i-2):将(i-2)这个数字转化为字符串类型
[num2str(i-2) '_IR.bmp']:这样写就可以得到类似“6_IR.bmp”的字符串
['!rename' 32 imgDir(i).name 32 [num2str(i-2) '_IR.bmp']]:这样写就类似于让系统执行
“!rename pic.bmp 6_IR.bmp” 这个命令

版权声明:本文为weixin_44132302原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。