Форум: "Основная";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
ВнизВопрос про копирование файлов Найти похожие ветки
← →
Dimich1978 (2003-06-16 11:34) [0]При некоторых событиях в программе мне необходимо скопировать файл, все бы ничего, но такая ситуация когда файл еще копируется, а поступило сообщение что надо копировать его снова...подскажите как можно это сотворить. Вот мой код для копирования файлов:
function WindowsCopyFile(FromFile, ToDir : string) : boolean;
var F : TShFileOpStruct;
begin
F.Wnd := 0; F.wFunc := FO_COPY;
FromFile:=FromFile+#0; F.pFrom:=pchar(FromFile);
ToDir:=ToDir+#0; F.pTo:=pchar(ToDir);
f.fFlags:=FOF_NOCONFIRMATION or FOF_NOCONFIRMMKDIR;
f.hNameMappings:= Nil;
f.lpszProgressTitle:= Nil;
result:=ShFileOperation(F) = 0;
end;
← →
clickmaker (2003-06-16 11:37) [1]А копирование в отдельном потоке? Тогда так
hEvent := CreateEvent
Начало копирования - SetEvent(hEvent
Поступило сообщение, что надо копировать - WaitForSingleObject(hEvent
Копирование закончилось - ResetEvent(hEvent
← →
Dimich1978 (2003-06-16 11:59) [2]а можно просто дождаться когда закончится копирование и начать заново копировать...как бы выстроить коипирование в список.
← →
clickmaker (2003-06-16 12:52) [3]А какие проблемы? StringList c путями в виде DestPath=SrcPath. Поставить в очередь - Add, скопировал - Delete
← →
Dimich1978 (2003-06-16 12:54) [4]а как определять что копирование завершено? В остальном согласен проблем нетути(используя мой метод копирования)
← →
suric (2003-06-16 13:12) [5]А что если использовать чтение одного и того же файла функцией Win32 API ReadFile в разных потоках, но при этом исходный файл
ОТКРЫТЬ функцией FileHandle=Createfile("filename",FILE_SHARE_READ,0,NIL,open_eXISTING,0,NIL);
параметор FILE_SHARE_READ даст раздельный доступ для нескольких потоков.
← →
clickmaker (2003-06-16 13:16) [6]Dimich1978 © (16.06.03 12:54)
а как определять что копирование завершено?
SetEvent(hEvent);
result:=ShFileOperation(F) = 0;
ResetEvent(hEvent);
// где-то в другом месте
WaitForSingleObject(hEvent, INFINITE);
// копирование завершено
...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.03 c