How to open multiple files

35 次查看(过去 30 天)
I think I posted this question in the wrong place earlier. I searched the Answers but didn't see anything that helped me.
I have code that opens a file, modifies the file, then saves the file with a new extension. I would like to be able to select multiple files in a directory, modify each one and then save each one with the new extension.
Here is my code to open a single file:
DefaultFile='';
[oldFileName,PathName] = uigetfile('*.txt','Select File to Modify',DefaultFile);
fid=fopen(fullfile(PathName,oldFileName));
Here is my code to save the file with a new extension:
[folder, oldBaseName, oldExt] = fileparts(oldFileName);
newBaseName = sprintf('%s.rsp',oldBaseName);
newFullFileName = fullfile(folder, newBaseName);
fileID = fopen(newFullFileName,'w');
fprintf(fileID,'%15s\r\n','# MHz Y RI R 50');
fprintf(fileID,'%6.2f %12.8f %12.8f\r\n',dataExport);
fclose(fileID);
So, how do I create a loop to be able to: 1. Select multiple files (number of files will vary each time I run this). 2. Modify my file (I have the code to do that). 3. Save the modified file with the new extension (see code above). 4. Repeat steps 2 and 3 until all files have been modified.
Thanks.

采纳的回答

Walter Roberson
Walter Roberson 2012-12-12
Use uigetfile() with 'MultiSelect', 'on'. Then a cell array of strings is returned for the file name. You can loop through that.
  5 个评论
Walter Roberson
Walter Roberson 2012-12-12
[oldFileNames,PathName] = uigetfile('*.dat','Select the dat-files', 'MultiSelect','on');
for K = 1 : length(oldFileNames)
oldFileName = oldFileNames{K};
[....]
end
AsYouWish
AsYouWish 2012-12-12
Thanks. That works great!

请先登录,再进行评论。

更多回答(1 个)

Image Analyst
Image Analyst 2012-12-12
  1 个评论
AsYouWish
AsYouWish 2012-12-12
I downloaded the dll and will give it a try this morning. Thanks.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Startup and Shutdown 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by