Problem with making a new directory

조회 수: 22 (최근 30일)
Sam
Sam 2014년 12월 29일
댓글: Sam 2014년 12월 29일
I created a code to save figures for each test for 5 subjects. It gives a warning that the subfolder already exists. So I tried to use if statements, and for the directory 'Data_examen1' it worked. But if I include making the subfolder also in my if-statement. It gives an error. I understand what's going wrong here... But I can't figure out how to get rid of the warning...
for welke_pp=1:5 % for 5 subjects
...
for i_testen=1:5 % for 5 measurements
...
if ((i_testen == 1) && (welke_pp == 1))
mkdir Data_examen1 %make new directory
end
mkdir('Data_examen1', sprintf('pp%d', welke_pp)); %hmake a new subfolder. Here is the warning.
folder = 'Data_examen1';
subfolder = sprintf('pp%d',welke_pp);
pngFileName = sprintf('3Dplot_subject%d_trial%d.png', welke_pp, i_testen);
fullFileName = fullfile([folder '\\' subfolder], pngFileName);
saveas(gcf,fullFileName); %save each figure

채택된 답변

Image Analyst
Image Analyst 2014년 12월 29일
Just wrap your mkdir() in an if statement
if ~exist(folderName, 'dir')
% Folder does not exist so create it.
mkdir(foldername);
end
If it exists already, it won't do this and therefore won't throw an error.
  댓글 수: 3
Image Analyst
Image Analyst 2014년 12월 29일
It should if you specify the full path of the folder.
subFolder = sprintf('pp%d', welke_pp);
fullPath = fullfile(someRootFolder, subFolder);
if ~exist(fullPath , 'dir')
% Folder does not exist so create it.
mkdir(fullPath );
end
Your code probably actually did create the folder but in a location you were not expecting and did not look for or in. Do it my way and look at the fullPath value and see if it makes sense. Then use the debugger to see if it actually enters the "if" block.
Sam
Sam 2014년 12월 29일
Thanks a lot! It works!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 File Operations에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by