![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Копирование файлов по списку [D7, XP]
Steep © (2006-09-12 08:19:00)Можете привести код копирования файлов по списку List или из файла (я думаю что в принципе это одно и тоже)
Желательно в отдельном потоке или методом windows
Рассматривал различные примеры, но там либо копирование 1 файла или копирование папки
Steep (2006-09-13 07:45:00) [21]Вобщем копирование из файла по списку я замутил..! :)
Осталось 2 проблемы
1. мне нужно чтобы если копируется больше указанного размера, то копирование прекращалось.
2. В зависимости от выбранного типа действия: либо копировалось, либо перемещалось, либо удалялось
{как я понял FO_COPY достаточно заменить на FO_MOVE, FO_DELETE
примерный код такой
---~Начало~----
var
i : integer;
s : TStringList;
Fo:TSHFileOpStruct;
buffer: array[0..4096] of char;
p:pChar;
Begin
s.TStringList.Create;
s.LoadFromFile(ExtractFilePath(application.ExeName)+'files.txt');
FillChar(Buffer, size of (Buffer), #0);
p:=@buffer;
for i:=0 to s.count-1 do p:=StrECopy(p, PChar(s.strings[i]))+1;
FillChar(Fo, sizeof(Fo), #0);
Fo.Wnd:=handle;
///Пробный код с кейсом
case ComboBox.item of (не помню точно, короче выбранный)
0: Fo.wFunc:=FO_COPY //Копирование;
1: Fo.wFunc:=FO_MOVE //Перемещение;
2: Fo.wFunc:=FO_DELETE //Удаление;
end;
//конец
Fo.pFrom:=@buffer;
Fo.pFo:=pChar(editPath.text);
Fo.tFlags:=0;
if ((SHFileOperations(Fo)<>0) or (Fo.AnyOperationsAborted<>false)) then Showmessage('Aborted');//кстати почему если убираешь эту строку, то не работает?
---~Конеч~----
Но когда я делаю с кейсом вылазит ошибка(причем уже в компилянной проге..) Без кейса все нормально работает..}
MBo (2006-09-12 08:33:00) [22]Там примеры использования, а описание функции и SHFILEOPSTRUCT смотри в MSDN, обратив внимание на pFrom и pTo
кроме того, раз ты знаешь, как копировать один файл, ничего не мешает сделать это в цикле для множества имен файлов.
Steep (2006-09-12 08:26:00) [23]в FAQ токо копирование папки с подкаталогами и удаление в корзину :(
Steep (2006-09-12 08:21:00) [24]Заранее спасибо за ответы!
MBo (2006-09-12 08:21:00) [25]в FAQ, искать ShFileOperation