Effacer les filtres
Effacer les filtres

Renaming files in a folder

4 vues (au cours des 30 derniers jours)
A
A le 4 Juin 2012
Commenté : Ade Aulya le 11 Déc 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 commentaires
Walter Roberson
Walter Roberson le 4 Juin 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.
A
A le 4 Juin 2012
Error is:
Error using movefile
No matching files were found.
Error in renameFiles (line 10)

Connectez-vous pour commenter.

Réponse acceptée

Walter Roberson
Walter Roberson le 4 Juin 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 commentaires
sravanthi mopati
sravanthi mopati le 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
Ade Aulya le 11 Déc 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 :)

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur File Operations dans Help Center et File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by