![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Нужна функция рекурсивного каталога и всех вложенных в него
Int23 © (2008-04-21 17:54:00)Поделитесь у кого есть, пожалуйста
Int23 (2008-04-22 10:08:00) [1]Спасибо откликнувшимся. Вот на всякий случай привожу здесь функцию, которая удаляет без запроса у пользователя
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;
Германн (2008-04-22 01:06:00) [2]Хм.
На моей памяти это первый случай, когда не было посылок к хрестоматийному: FindFirst, FindNext, FindClose.
:)
Amoeba (2008-04-21 23:43:00) [3]О ShFileOperation автору вопроса читать здесь:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=91
Anatoly Podgoretsky (2008-04-21 19:42:00) [4]> Int23 (21.04.2008 17:58:02) [2]
Зачем мучаешь, мучаешь язык.
От все мучений избавить ShFileOperation
Ega23 (2008-04-21 18:55:00) [5]
> C:\My\Temp\ и нужно удалить всё что есть в C:\My\Temp\ и
> во всезх вложенных каталогах
>
см. RxLib unit FileUtils Там было такое.
Kolan (2008-04-21 18:11:00) [6]> Нужна функция рекурсивного каталога и всех вложенных в него
> файлов и каталогов.
Опять слово пропущено
рекурсивного обходакаталога
рекурсивного удалениякаталога
рекурсивного копированиякаталога
Чот надо?
> нужно удалить
SHFileOperation
easy (2008-04-21 17:59:00) [7]http://dfc.com.ru/?sid=2&id=7&itemid=3
Int23 (2008-04-21 17:58:00) [8]Нужна функция рекурсивного каталога и всех вложенных в него файлов и каталогов. Т.е. я хочу написать удалить C:\My\Temp\ и нужно удалить всё что есть в C:\My\Temp\ и во всезх вложенных каталогах
Kolan (2008-04-21 17:57:00) [9]> Нужна функция рекурсивного каталога и всех вложенных в него
Пропущено какое-то слово