Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.05.18;
Скачать: CL | DM;

Вниз

Нужна функция рекурсивного каталога и всех вложенных в него   Найти похожие ветки 

 
Int23   (2008-04-21 17:54) [0]

Поделитесь у кого есть, пожалуйста


 
Kolan ©   (2008-04-21 17:57) [1]

> Нужна функция рекурсивного каталога и всех вложенных в него

Пропущено какое-то слово&#133


 
Int23   (2008-04-21 17:58) [2]

Нужна функция рекурсивного каталога и всех вложенных в него файлов и каталогов. Т.е. я хочу написать удалить C:\My\Temp\ и нужно удалить всё что есть в C:\My\Temp\ и во всезх вложенных каталогах


 
easy ©   (2008-04-21 17:59) [3]

http://dfc.com.ru/?sid=2&id=7&itemid=3


 
Kolan ©   (2008-04-21 18:11) [4]

> Нужна функция рекурсивного каталога и всех вложенных в него
> файлов и каталогов.

Опять слово пропущено&#133

рекурсивного обхода каталога
рекурсивного удаления каталога
рекурсивного копирования каталога

Чот надо?


> нужно удалить

SHFileOperation


 
Ega23 ©   (2008-04-21 18:55) [5]


> C:\My\Temp\ и нужно удалить всё что есть в C:\My\Temp\ и
> во всезх вложенных каталогах
>


см. RxLib  unit FileUtils   Там было такое.


 
Anatoly Podgoretsky ©   (2008-04-21 19:42) [6]

> Int23  (21.04.2008 17:58:02)  [2]

Зачем мучаешь, мучаешь язык.
От все мучений избавить ShFileOperation


 
Amoeba ©   (2008-04-21 23:43) [7]

О ShFileOperation автору вопроса читать здесь:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=91


 
Германн ©   (2008-04-22 01:06) [8]

Хм.
На моей памяти это первый случай, когда не было посылок к хрестоматийному: FindFirst, FindNext, FindClose.
:)


 
Int23   (2008-04-22 10:08) [9]

Спасибо откликнувшимся. Вот на всякий случай привожу здесь функцию, которая удаляет без запроса у пользователя
procedure CreateBuffer(Names : array of string; var P : TBuffer);
var I, J, L : Integer;
begin
 for I := Low( Names ) to High( Names ) do
   begin
     L := Length( P );
     SetLength( P, L + Length( Names[ I ] ) + 1 );
     for J := 0 to Length( Names[ I ] ) - 1 do
       P[ L + J ] := Names[ I, J + 1 ];
     P[ L + J ] := #0;
   end;
 SetLength( P, Length( P ) + 1 );
 P[ Length( P ) ] := #0;
end;

function DeleteFiles(Handle : HWnd; Names : array of string; ToRecycle :
   Boolean): Integer;
var
 SHFileOpStruct : TSHFileOpStruct;
 Src : TBuffer;
begin
 CreateBuffer( Names, Src );
 with SHFileOpStruct do
   begin
     Wnd := Handle;
     wFunc := FO_DELETE;
     pFrom := Pointer( Src );
     pTo := nil;
     fFlags := FOF_NOCONFIRMATION;
     if ToRecycle then fFlags := FOF_ALLOWUNDO;
     fAnyOperationsAborted := False;
     hNameMappings := nil;
     lpszProgressTitle := nil;
   end;
 Result := SHFileOperation( SHFileOpStruct );
 Src := nil;
end;

Пример вызова
procedure TForm1.Button1Click(Sender: TObject);
begin
DeleteFiles( Handle, [ "C:\AxSystem"], False);
end;



Страницы: 1 вся ветка

Текущий архив: 2008.05.18;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.021 c
2-1208793359
Victor
2008-04-21 19:55
2008.05.18
работа с dos приложением


2-1208496028
kalexi
2008-04-18 09:20
2008.05.18
WM_CTLCOLORBTN как обрабатывать?


15-1204371798
AET
2008-03-01 14:43
2008.05.18
из ASM в Pascal


3-1197047847
Катунов Юрий
2007-12-07 20:17
2008.05.18
Как сохранить результат запроса в таблицу Excel?


15-1207665448
Igorek
2008-04-08 18:37
2008.05.18
Проверка Tab Separated файла