Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как поймать окончание копирования файла [D6, Win2k]


BOI ©   (2002-10-03 13:44:00) 

Доброго времени суток леди & джентельмены.
Нужна помощь. Существует программа по синхронизации файлов в определенных
каталогах и все прекрасно синхронизирует. Из собственной программы я проверяю
наличие файла в этих каталогах и начинаю работу с ним.
Но вот в чем проблема. При наличии файла большого объема на синхронизацию уходит много времени. Моя прога обнаруживает что файл уже как бы есть, хотя он не полностью скопирован, и начинает работу с ним.
Как поймать окончание копирования файла ???
p.s.
Попытки захвата файла через FileOpen с разными параметрами ни к чему не приводят.
Он успешно открывается.
Заранее огромное спасибо за любую подсказку.


Юрий Зотов   (2002-10-04 16:49:00) [1]

1. dwDesiredAccess = 0:
Specifies device query access to the object. An application can query device attributes without accessing the device.

То есть - GENERIC_READ, или GENERIC_WRITE, или их комбинация, но только не ноль.


2. If dwShareMode is 0, the object cannot be shared.

То есть - не надо никаких FILE_SHARE_xxx. Просто ноль.


BOI   (2002-10-03 16:18:00) [2]

Спасибо за посказку.

Пробовал следующим образом
FileHandle:=CreateFile(PChar(FileName), 0, FILE_SHARE_WRITE, Nil, OPEN_EXISTING, FILE_ATTRIBUTE_ARCHIVE, 0);

Замена 0 на GENERIC_READ или GENERIC_WRITE
А так же FILE_SHARE_WRITE на FILE_SHARE_READ ни к чему не привело.

Может я не те параметры использую или что-то не правильно указал.


Song   (2002-10-03 14:49:00) [3]

Через CreateFile() в монопольном режиме. Не откроется.


Наверх

Титульная страница Поиск, карта сайта Написать письмо