整理时间: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
结束。。。