Using a loop to change the source path and rename each file

18 views (last 30 days)
Hi. So I wrote the following functinal code to rename one file from one particular path. I have 38 paths to which I would like to do this, i.e. p1 would be p2 then p3 then p4... and pdest would be the same for all source paths (p1-p38). The filename is also always the same ('myfile.dat'). How would I be able to use a loop to change p1 to p2,p3,p4... and the new filename to 2.myfile.dat, 3.myfile.dat and so on.
Summarising:
  • p1 changes to p2, p3, p4. ..
  • newname changes to 2myfile.dat, 3myfile.dat, 4myfile.dat ...
  • pdest is always the same
  • filename is always the same
% Paths (only p1 listed, there are 38)
p1 = 'path1_source';
pdest = 'pathdestination'
% Finding file in source and copying in destination
filename = 'myfile.dat';
source = fullfile(p1,filename);
destination = fullfile(pdest,filename);
copyfile(source,destination)
% Renaming file
oldname = filename;
newname = '1myyfile.dat'; % added 1 in front
copyfile(oldname,newname);
% Deleting old file
delete(filename)

Answers (1)

Image Analyst
Image Analyst on 18 Nov 2018
In some loop over k,
newname = sprintf('%d%s', k, filename); % Prepend the loop iteration variable to the filename.
where filename is the input filename that changes on every iteration. See The FAQ for more explicit code samples.
Most people would use movefile() to rename or move files.

Categories

Find more on Startup and Shutdown in Help Center and File Exchange

Products


Release

R2018b

Community Treasure Hunt

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

Start Hunting!