Renaming files in a folder
1 view (last 30 days)
Show older comments
Hello,
I'm written the following code to rename files in a folder. However, for whatever reason it is not working. Any idea where I've gone wrong?
I assume the program is self-explanatory, but let me know if you need any clarifications on the task.
function renameFiles
path=('D:\Documents and Settings\Administrator\Desktop\Data 31052012\75mj\all times\');
files=dir(path)
prefix=('75mJ');
time=0;
for id=3:24;
newName=([prefix num2str(time) 'ns'])
movefile(files(id).name, sprintf('%s.bmp',newName));
time=time+2;
end
Thanks!
3 Comments
Walter Roberson
on 4 Jun 2012
Your code does not exclude directories in the renaming.
Do not assume that the directories "." and ".." are the first two entries in the list: that is not promised by any of the operating systems that MATLAB runs on.
Accepted Answer
Walter Roberson
on 4 Jun 2012
The directory name is not included in the .name field returned by dir(). You need to add it back on.
movefile( fullfile(path, files(id).name), fullfile(path, sprintf('%s.bmp',newName)) );
9 Comments
sravanthi mopati
on 21 Mar 2018
I have a similar problem and my code is as shown below. I would like to rename the files in a folder:
if true
% code
endfilePattern = fullfile('D:/intern/Data', '*.nc');
theFiles = dir(filePattern);
for i = 1:length(theFiles)
[PathStr,FileName,FileExt]=fileparts(theFiles(i).name);disp(FileName)
old = FileName(20:59);
new = "";
FileName = replace(FileName,old,new);
FileName = strcat(FileName,FileExt);disp(FileName)
movefile(fullfile(filePattern,theFiles(i).name),fullfile(filePattern,FileName));
end
I am getting an error: Error using movefile No matching files were found. Any suggestions will be helpful.
Ade Aulya
on 11 Dec 2018
hi.. Mr.Walter Roberson, i was using the code like this and it also were run but i didn't get the name files as i want. if i wanted to change those file's number output into ONLY 1,2,3,4,5,and so on.. what should i do, please ? FYI, i tried to change the folder name like this..
% Get all files in the current folder clear all;
files = dir(fullfile('C:\Users\ASUS\Desktop\2', '*.tif'));
% Loop through each
for id = 1:length(files)
% Get the file name (minus the extension)
[~, f] = fileparts(files(id).name);
% Convert to number
num = str2double(f);
if ~isnan(num)
% If numeric, rename
APath = fullfile('C:\Users\ASUS\Desktop\2', files(id).name);
movefile(APath, sprintf('%d.tif', num));
end
end
and the output files name were like this :
2.100000e+00.tif
2.100100e+00.tif
2.100200e+00.tif
2.100300e+00.tif
2.100400e+00.tif
2.100500e+00.tif
etc..
or if i want to change the output only like
1a
2a
3a
5b
6b
7b
etc..
could you please give me an idea, pease ?
thank you so much :)
More Answers (0)
See Also
Categories
Find more on Data Type Conversion in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!