Check the existence of a directory based on part of a string?
19 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
automycer
el 24 de Ag. de 2016
hello all,
I have a range of sub-folders which are named as CL_CS, CL_CS_01, CL_CS_02...CL_CS_xx. These folders are located in same directory with other folders. I want to run a loop which checks the first 5 characters of the folder name and run some operations inside those folders.
I am not quite sure how to match the string for a folder name. So far...
fpath = 'CL_CS';
while isequal(exist(fpath,'dir'),7)
% do something here
end
Thanks!
0 comentarios
Respuesta aceptada
Stephen23
el 24 de Ag. de 2016
Editada: Stephen23
el 18 de Abr. de 2021
The simplest option is to use dir directly to return only directory names that match that pattern.
S = dir('CL_CS*');
S = S([S.isdir]);
S = natsortfiles(S); % (optional) alphanumeric sort by filename
and then simply loop over those subdirectory names:
for k = 1:numel(S)
name = S(k).name
... your code
end
Más respuestas (1)
Azzi Abdelmalek
el 24 de Ag. de 2016
When you run
f=dir(current_folder)
You wil get a cell array of the content of your current folder, like
f={'CL_CS','CL_CS_01','CL_CS_02','other1' 'other'}
name=regexp(f,'CL_CS.+','match','once')
idx=~cellfun(@isempty,name)
name=name(idx)
4 comentarios
Stephen23
el 24 de Ag. de 2016
Editada: Stephen23
el 24 de Ag. de 2016
@automycer: see my answer, I already showed you how to do this correctly (Azzi Abdelmalek's answer is not correct, because as you have found dir returns a structure, not a cell array of names).
And I also showed you how to get the names into the correct order!
Azzi Abdelmalek
el 24 de Ag. de 2016
@Stephen Cobeldick, why the answer is not correct? dir returns a struct variable, but you can get the cell array containing the names, as mentioned in my above comment!
Ver también
Categorías
Más información sobre Search Path en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!