How to change file extension via matlab?

Hello,
I have a question. I would like to change the extension of several files. I mean that in one directory a I have many files in type file1.out., file2.out ,..., file600.out.
I would like to rename these files to *.txt (I mean file1.txt, file2.txt,...., file600.txt) in this directory with one command via matlab?
Could anyone help me?

 Risposta accettata

Adam Danz
Adam Danz il 2 Apr 2020
Modificato: Adam Danz il 27 Gen 2021
This shows how to
  1. List all files in a given directory with the extension .out
  2. Copy the file and rename the extention .txt
  3. Delete the .out file (commented out)
% Enter the directory to search
directory = 'C:\Users\name\Documents\MATLAB';
% List all .out files
fileList = dir([directory, '\*.out']);
% Loop through each .out file, copy it and give new extension: .txt
for i = 1:numel(fileList)
file = fullfile(directory, fileList(i).name);
[tempDir, tempFile] = fileparts(file);
status = copyfile(file, fullfile(tempDir, [tempFile, '.txt']))
% Delete the .out file; but don't do this until you've backed up your data!!
% delete(file)
end
*Not tested

5 Commenti

Ivan Mich
Ivan Mich il 2 Apr 2020
Modificato: Adam Danz il 6 Apr 2020
Excuse me, I have tried your solution but command window shows me :
Error in (line 11)
for i = 1:numel(fileLIst)
Do you know why?
Adam Danz
Adam Danz il 2 Apr 2020
Modificato: Adam Danz il 3 Apr 2020
Whenever you share an error message, please share the entire copy-pasted error message.
Note the typo in my answer (which I'll fix now). In that line, the I is capitalized (fileLIst) and it shouldn't be.
Also, whenever you're trying new code, take time to look at it and understand what each line is doing, especially for really short pieces of code like the one in my answer. Also take time to think about what the error message is telling you. In this case, the error message likely indicated that the variable fileLIst didn't exist and you could have caught the typo.
Shouldn't it be "fileList(i).name" instead of "fileList(1).name" ?
Thanks Pedro, fixed.
thank you, working for me

Accedi per commentare.

Più risposte (2)

Femke Cappon
Femke Cappon il 27 Gen 2021
Thank you, I have used to code to rewrite LabVIEW .lvm files to .txt
Musaddiq Al Ali
Musaddiq Al Ali il 6 Dic 2020
Modificato: Musaddiq Al Ali il 6 Dic 2020
Mr. Adam Danz's code is vey nice and neat. I like it. I would like to suggest, to add '\' to the secound lines of the code:-
fileList = dir([directory,'\','*.out']);

2 Commenti

Even better would be to use the correct function for the job:
fileList = dir(fullfile(directory,'*.out'));
thanks, corrected.

Accedi per commentare.

Categorie

Scopri di più su Programming in Centro assistenza e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by