![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
Fo : TSHFileOpStruct;
buffer : array[0..4096] of char;
p : pchar;
begin
FillChar(Buffer, sizeof(Buffer), #0);
p := @buffer;
p := StrECopy(p, 'C:\Key2') + 1;
FillChar(Fo, sizeof(Fo), #0);
Fo.Wnd := Handle;
Fo.wFunc := FO_DELETE;
Fo.pFrom := @Buffer;
Fo.fFlags := 0;
if ((SHFileOperation(Fo) <> 0) or
(Fo.fAnyOperationsAborted <> false)) then
ShowMessage('Cancelled')
end; |
|
#2
|
||||
|
||||
|
Удалить все папки с определенным именем? Запустить поиск по всем папкам и удалить те, у которых имя совпадает.
Только не пойму смысла: можно покалечить другие программы. |
|
#3
|
|||
|
|||
|
Код:
Procedure ScanDir(StartDir: String; Mask:string; List:TStrings);
{ Процедура выводит список директории в список List, начиная с директории, указанной в StartDir. Mask - маска для получения файлов
Источник delphi.mastak.ru
© А. Подгорецкий }
Var SearchRec : TSearchRec;
Begin
IF Mask ='' then Mask:= '*.*';
IF StartDir[Length(StartDir)] <> '\' then StartDir := StartDir + '\';
IF FindFirst(StartDir+Mask, faAnyFile, SearchRec) = 0 then
Begin
Repeat
{ Чтобы выполнение "не подвисало" }
Application.ProcessMessages;
IF (SearchRec.Attr and faDirectory) <> faDirectory then
List.Add(StartDir + SearchRec.Name) else
IF (SearchRec.Name <> '..') and (SearchRec.Name <> '.') then
Begin
List.Add(StartDir + SearchRec.Name + '\');
{ Рекурсивный вызов }
ScanDir(StartDir + SearchRec.Name + '\',Mask,List);
End;
Until FindNext(SearchRec) <> 0;
FindClose(SearchRec);
End; {IF}
end;А где здесь можно прописать имя папки которую надо искать? Последний раз редактировалось Aristarh Dark, 21.06.2012 в 16:47. |
|
#4
|
|||
|
|||
|
во входных параметрах
|
|
#5
|
||||
|
||||
|
Не нужно плодить одинаковые темы.
|