Попробуй дождаться освобождения файла, вот кусок из моей программы, подредактируй под себя:
Код:
if(FileExists(FileName))then begin
try i:=0; //Жду освобождения файла, но не более 20 сек:
repeat i:=i+1;
HFileRes := CreateFile(PChar(FileName), GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
b := (HFileRes = INVALID_HANDLE_VALUE); // False => файл не занят никем
if(b)then // Занят, жду-освобождения
ELSE begin CloseHandle(HFileRes); BREAK; end; // Не занят, выхожу из ожидания
Label1.Caption:='Жду освобождения файла: '+IntToStr(i)+c13+ExtractFileName(FileName); Application.ProcessMessages; Sleep(200);
until (i>99);
if(i>1)then Label1.Caption:='Освободился'+c13+ExtractFileName(FileName); if(i>99)then Label1.Caption:='Занят'+c13+ExtractFileName(FileName); if(i>1)then Application.ProcessMessages;
except end;
Админ: Пользуемся тегами при оформлении кода!