![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Дериктория [D7, WinXP]
Cherepovets © (2004-10-05 09:59:00)Народ как ее скопирировать в другую дерикторию
к примеру
папку log на диске с:\ на диск d:\
Amoeba (2004-10-05 11:53:00) [1]
> Cherepovets (05.10.04 11:49) [3]
Прочитай рекомендованную мной статью. Там есть готовый правильный код.
Cherepovets (2004-10-05 11:49:00) [2]
var
Fo : TSHFileOpStruct;
buffer : array[0..4096] of char;
p : pchar;
begin
FillChar(Buffer, sizeof(Buffer), #0);
p := @buffer;
StrECopy(p, PChar(FromFolder)); //директория, которую мы хотим скопировать
FillChar(Fo, sizeof(Fo), #0);
Fo.Wnd := Application.Handle;
Fo.wFunc := FO_COPY;
Fo.pFrom := @Buffer;
Fo.pTo := PChar(ToFolder); //куда будет скопирована директория
Fo.fFlags := 0;
if ((SHFileOperation(Fo) <> 0) or (Fo.fAnyOperationsAborted <> false)) then
ShowMessage('File copy process cancelled')
ТАк вот он выдает ситемимеую ошибку про длинные имена и не копирует =(
Amoeba (2004-10-05 11:28:00) [3]Разумнее (IMHO!) использовать SHFileOperation
Рекомендую прочесть вод это:
http://www.delphikingdom.com/asp/viewitem.asp?UrlItem=/mastering/fileshellapi.htm
Мастер (2004-10-05 10:09:00) [4]вот пара вариантов на выбор:
1. SHFileOperation
2. FindFirst/FindNext/FindClose рекурсивно.
Оба примера есть в FAQ.