Вниз
Скачать: CL | DM;

Вопрос про копирование файлов   Найти похожие ветки 

 
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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.016 c
14-84618
Marser
2003-06-09 13:33
2003.06.26
Украина - Армения, 4 : 3


1-84286
Dmk
2003-06-14 21:44
2003.06.26
Как вернуть форму к предыдущему состоянию


1-84094
ers
2003-06-10 14:08
2003.06.26
Как сделать подобие Object Inspector как в Delphi/C Builder?


1-84142
noteens
2003-06-11 11:51
2003.06.26
Word+Delphi


1-84375
dRake
2003-06-07 00:56
2003.06.26
Как заставить прогу свернуться в трей?




   Наверх