delete subfolder with specific name*

5 visualizaciones (últimos 30 días)
Long Hà Vinh
Long Hà Vinh el 17 de Dic. de 2018
Editada: Stephen23 el 17 de Dic. de 2018
I have 1 <main folder> with many subfolder like:
<output_figure_file_1>
<output_figure_file_2>
<output_figure_file_3>
<output_data_file_1>
<output_data_file_2>
<output_data_file_3>
<file_1>
<file_2>
<file_3>
With some file inside subfolder. Now I need to delete all sub-folder named <output_figure_file_*>
with using this code:
close all; clear all; clc;
% remove sub folder on input
d=dir('output_figure_*')
dirlist=d([d.isdir])
dirlist=dirlist(~ismember({dirlist.name},{'.','..'}));
for idir=1:numel(dirlist)
%dird=fullfile(pwd,(dirlist(idir).name))
rmdir((dirlist(idir).name),'s')
end
It caused eror said:
??? Error using ==> rmdir
No directories were removed.
Error in ==> Untitled at 8
rmdir((dirlist(idir).name),'s')
Any one pls help me to fix this eror.
My version is R2008a
  2 comentarios
Guillaume
Guillaume el 17 de Dic. de 2018
Change the call to rmdir to:
[status, message] = rmdir(dirlist(idir).name, 's');
if ~status
error('Fed to remove %s, because %s', dirlist(idir).name, message);
end
and tell us what the new error message is.
Long Hà Vinh
Long Hà Vinh el 17 de Dic. de 2018
I keep 1 file on opened. So It can not delete the 1st folder. I am so woolgathering. Sorry!

Iniciar sesión para comentar.

Respuesta aceptada

Jan
Jan el 17 de Dic. de 2018
Add some error messages:
base = cd;
d = dir(fullfile(base, 'output_figure_*'));
dirlist = d([d.isdir]);
dirlist = dirlist(~ismember({dirlist.name}, {'.','..'}));
for idir = 1:numel(dirlist)
folder = fullfile(base, dirlist(idir).name);
[status, msg] = rmdir(folder, , 's');
if status ~= 1
error('rmdir:failed:now', 'Folder: %s, Message: %s', folder, msg);
end
end
What do you get as message?
Is one of the files opened anywhere?
  2 comentarios
Long Hà Vinh
Long Hà Vinh el 17 de Dic. de 2018
Dear Jan
You right, I keep 1 file in folder <output_figure_file_1> opened so I can not pass the loop 1. Now I turn it off and it run. Thanks!
Stephen23
Stephen23 el 17 de Dic. de 2018
Editada: Stephen23 el 17 de Dic. de 2018
An alternative to if and error is to use assert:
assert(status==1,'rmdir:failed:now', 'Folder: %s, Message: %s', folder, msg)

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