Creating Subfolders in a loop?

6 visualizaciones (últimos 30 días)
Sharif Khalil
Sharif Khalil el 27 de Ag. de 2018
Editada: Stephen23 el 28 de Ag. de 2018
Hi, I have one folder, and need to create 52 subfolders using a for loop, I guess newSubFolder line needs to be modified
for CatNo = 1:52
newFolder = sprintf('/Categories%d', 'C:\Users\sheri\Desktop');
if ~exist(newFolder,'dir')
mkdir C:\Users\sheri\Desktop Categories;
end
[parentFolder, deepestFolder] = fileparts('C:\Users\sheri\Desktop\Categories');
newSubFolder = sprintf('%s/Category#CatNo%d','C:\Users\sheri\Desktop\Categories',deepestFolder);
if ~exist(newSubFolder,'dir')
mkdir (newSubFolder);
end
end

Respuesta aceptada

Stephen23
Stephen23 el 28 de Ag. de 2018
Editada: Stephen23 el 28 de Ag. de 2018
Your code has several features that need to be fixed, such as your using %d format specifier with a character vector, use of the loop iterator name within the format string, getting rid of pointless duplication of data, and moving the main folder creation out of the loop. Probably you want something like this:
D = 'C:\Users\sheri\Desktop';
F = 'Categories';
if ~exist(fullfile(D,F),'dir')
mkdir(fullfile(D,F))
end
for k = 1:52
Z = fullfile(D,F,sprintf('Category%d',k));
if ~exist(Z,'dir')
mkdir(Z)
end
end
  2 comentarios
Sharif Khalil
Sharif Khalil el 28 de Ag. de 2018
Editada: Stephen23 el 28 de Ag. de 2018
Thank you so much, it works perfectly!
Sean de Wolski
Sean de Wolski el 28 de Ag. de 2018
In newer releases you can change exist(Z,'dir') to isfolder which is a little easier to read.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre File Operations en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by