![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
поиск и удаление пустых папок [D7, XP]
perat © (2006-03-19 19:14:00)хочу написать программу, которая находила бы все пустые папки в заданной родительской и удаляла бы их.
perat (2006-03-22 15:08:00) [1]var
Form1: TForm1;
dir,c:string;
bol:boolean;
SearchRec:TSearchRec;
i:integer;
implementation
{$R *.nfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
dir:=edit1.Text;
if DirectoryExists(dir) then find;
end;
procedure TForm1.find;
begin
bol := False;
memo1.Lines.Clear;
memo2.Lines.Clear;
if FindFirst(dir+'\*.*',faAnyFile,SearchRec)=0 then
repeat
if (SearchRec.Name<>'.') and (SearchRec.Name<>'..') then
begin
bol := True;
if AnsiContainsText(SearchRec.Name,'.') then
memo2.Lines.add(SearchRec.Name)
else
memo1.Lines.add(SearchRec.Name);
end
until FindNext(SearchRec)<>0;
FindClose(SearchRec);
str(memo1.Lines.count,c);
memo3.Lines.add(dir+' ('+c+')');
if bol then begin
label1.Caption:='Папка не пуста';
if memo1.Lines.Count>0 then begin
dir:=dir+'\'+memo1.Lines[0];
find
end
else revers;
end
else begin
label1.caption:='Папка пуста';
RmDir(dir);
memo3.lines.Add('del> '+dir);
revers;
end;
end;
procedure Tform1.revers;
var b:boolean;
begin
if length(dir)>=length(edit1.Text) then
begin
i:=length(dir);
b:=false;
repeat
dec(i);
if dir[i]='\' then begin
dir:=copy(dir,1,i-1);
b:=true;
end;
until (i<3) or (b=true);
memo3.lines.Add('reverse> '+dir);
find;
end
else memo1.Lines.add('end')
end;
есть вот такая структура 1\2\3 - папка в папке, файлов нет.
после удаления папки 1\2\3, появляется ошибка доступа к 1\2. Никак не пойму в чем дело. еще раз жму ОК и тогда удаляется 1\2 но появляется ошибка доступа к 1. В чем дело?
Dmitrij_K (2006-03-19 19:33:00) [2]
bol := False;
if FindFirst('c:\papka\*.*',faAnyFile,SearchRec)=0 then
repeat
if (SearchRec.Name<>'.') and (SearchRec.Name<>'..') then
begin
bol := True;
Break;
end
until FindNext(SearchRec)<>0;
FindClose(SearchRec);
if not bol then ShowMessage('Papka PUSTAYA')
palva (2006-03-19 19:32:00) [3]Можно попробовать удалить. Если удалилась (функция вернет хороший код), значит была пустая.
perat (2006-03-19 19:26:00) [4]хочу написать программу, которая находила бы все пустые папки в заданной родительской и удаляла бы их. Подскажите, пожалуйста, как определить содержит ли папка файлы и подпапки?
Джо (2006-03-19 19:15:00) [5]
> хочу написать программу,
Бог помощь.
palva (2006-03-19 19:15:00) [6]Очень нужная программа. Надеюсь, будет freeware.