Renaming files in a folder
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
A
am 4 Jun. 2012
Kommentiert: Ade Aulya
am 11 Dez. 2018
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 Kommentare
Walter Roberson
am 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.
Akzeptierte Antwort
Walter Roberson
am 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 Kommentare
sravanthi mopati
am 21 Mär. 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
am 11 Dez. 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 :)
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Data Type Conversion finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!