Renaming batch names removing extensions
Show older comments
Hello, I have multiple file names that were accidently labeled with a '.' in them, and my other scripts will no longer recognize the file name correctly. I need to remove the '.' fromt he file names in large batches, about 400 files at a time in a folder.
For example, I need a way to make a batch like this:
1801_pH6.25-pos2-041-seg
1801_pH6.25-pos2-042-seg
1801_pH6.25-pos2-043-seg
1801_pH6.25-pos2-044-seg
into a batch with just the "." removed like this:
1801_pH625-pos2-041-seg
1801_pH625-pos2-042-seg
1801_pH625-pos2-043-seg
1801_pH625-pos2-044-seg
I am new to matlab and have no idea how to accomplish this, any and all help would be much appreciated.
Thank you!
Accepted Answer
More Answers (1)
Image Analyst
on 14 Jun 2019
Try this
% Specify the folder where the files live.
myFolder = 'C:\Users\yourUserName\Documents\My Pictures';
% Check to make sure that folder actually exists. Warn user if it doesn't.
if ~isfolder(myFolder)
errorMessage = sprintf('Error: The following folder does not exist:\n%s', myFolder);
uiwait(warndlg(errorMessage));
return;
end
% Get a list of all files in the folder with the desired file name pattern.
filePattern = fullfile(myFolder, '*.*'); % Change to whatever pattern you need.
theFiles = dir(filePattern);
for k = 1 : length(theFiles)
baseFileName = theFiles(k).name;
originalFullFileName = fullfile(myFolder, baseFileName);
% If there is no dot, skip it.
if ~contains(baseFileName, '.')
continue; % Skip to bottom of loop.
end
% If it gets to here, there is a dot in the name.
% Remove it
newBaseFileName = baseFileName; % Initialize
newBaseFileName(baseFileName == '.') = [];
newFullFileName = fullfile(myFolder, newBaseFileName);
fprintf(1, 'Now renaming %s to %s\n', originalFullFileName, newFullFileName);
movefile(originalFullFileName, newFullFileName); % Do the rename.
end
I just adapted the FAQ: https://matlab.fandom.com/wiki/FAQ#How_can_I_process_a_sequence_of_files.3F
You might also want to do all folder and subfolders all in one shot, instead of a folder at a time, using fileDatastore.
Categories
Find more on Search Path in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!