【MATLAB】文件批量重命名。防止文件名顺序错误,在文件名自动补充“0”.(代码)

整理时间:2020-03-08

1.问题:
使用dir函数获取到文件名,但是顺序排列如下:
1.txt
10.txt
2.txt
3.txt
4.txt
5.txt
6.txt
7.txt
8.txt
9.txt


注意:10.txt排在第二位,并非是最后一个,这样不是我们期望的。

2.传统办法
重新在文件中命名,很麻烦。

3.我的代码,自动实现重命名,自动补0

以下是一个文件名最长位23个字符的举例。

pathname='G:\text';
list=dir(fullfile(pathname,'*.txt'));

nn=length(list);
maxlen=23;
for ii=1:nn
    filename=list(ii).name;
    curlen=length(filename);
    if curlen<maxlen
        dd=maxlen-curlen;
        xstr='0';
        xsumstr='0';
        for xx=1:dd-1
            xsumstr=[xsumstr,xstr];
        end
        filename1=[filename(1:16), xsumstr,filename(17:end)];
        movefile(filename,filename1);
    end
    disp(ii);    
end

结果如下:
在这里插入图片描述


新的代码:(2020-03-09,更加简洁)

pathname='G:\text';
list=dir(fullfile(pathname,'*.txt'));

nn=length(list);
minlen=0;
maxlen=0;
for ii=1:nn
	filename=list(ii).name;
	curlen=length(filename);
	if curlen>maxlen
	   maxlen=curlen;
	end
	if curlen<minlen
	   minlen=curlen;
	end
end
%xx=input('数字位=(比如29-1.raw就是2)'for ii=1:nn
    filename=list(ii).name;
    curlen=length(filename);
    if curlen<maxlen
        dd=maxlen-curlen;
        xstr=char(48*ones(1,dd));
        filename1=[filename(1:16), xstr,filename(end-3:end)];
        movefile(filename,filename1);
    end
    disp(ii);    
end


结束。。。

发布了115 篇原创文章 · 获赞 104 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/hahahahhahha/article/details/104731801