Removing subfolders with same name

12 vues (au cours des 30 derniers jours)
Nadeau Hahne
Nadeau Hahne le 2 Avr 2021
Commenté : Nadeau Hahne le 6 Avr 2021
I have a series of folders with unique names but the sub folders have the same names:
Folder 1
Subfolder A
Subfolder B
Folder 2
Subfolder A
Subfolder B
How do I loop through all the folders to delete all of the Subfolder B's?
  2 commentaires
Jan
Jan le 2 Avr 2021
You can do this easily in the explorer also, if you are working with Windows.
Nadeau Hahne
Nadeau Hahne le 2 Avr 2021
Modifié(e) : Nadeau Hahne le 2 Avr 2021
Thank you, I'm struggling to get comfortable with Matlab so I'm trying my best to learn

Connectez-vous pour commenter.

Réponse acceptée

Jan
Jan le 2 Avr 2021
BaseFolder = 'C:\Parent\Folder'
List = dir(fullfile(BaseFolder, '**', 'Folder B'));
List = List([List.isdir]);
List(strcmp({List.name}, '..')) = [];
for k = 1:numel(List)
disp(List(k).folder)
% Check this twice before you uncomment this:
% rmdir(List(k).folder);
end
  4 commentaires
Jan
Jan le 3 Avr 2021
The '..' is a char vector. DIR replies '.' as pointer to the current folder and '..' for the parent folder.
List(strcmp({List.name}, '..')) = [];
To find out, what this does, evaluate it in parts:
{List.name}
strcmp({List.name}, '..')
List(strcmp({List.name}, '..'))
The " = []" is Matlab's method to delete elements. The complete line removes all elements of the List, if their name is '..' .
If the folders are not empty, ue the 's' flag:
rmdir(List(k).folder, 's');
Nadeau Hahne
Nadeau Hahne le 6 Avr 2021
Thank you!!! Trying to learn quickly and feeling like I'm drinking from a fire hose. Appreciate the help

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur File Operations dans Help Center et File Exchange

Produits


Version

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by