Работают ли CopyFile и CopyFileEx, если исходный файл открыт? - PullRequest
3 голосов
/ 10 марта 2010

Я хочу вызвать функцию copyFile из исходного файла для копирования. Функция VBA FileCopy не позволяет открывать исходный файл во время его копирования. Я думаю об использовании CopyFile или CopyFileEx (чтобы показать индикатор выполнения) вместо этого.

Следовательно, работают ли эти функции, если исходный файл открыт?

1 Ответ

2 голосов
/ 10 марта 2010

Да, CopyFileEx () имеет параметр COPY_FILE_OPEN_SOURCE_FOR_WRITE, позволяющий скопировать файл, открытый для записи. Вам все равно понадобится сотрудничество с владельцем файла, ему нужно было бы открыть файл, чтобы разрешить совместное чтение.

Остерегайтесь неприятностей, с которыми вы можете столкнуться при использовании этой опции, вы по сути получите случайный снимок файла, вы можете скопировать файл, когда приложение находилось в процессе записи в файл. Такая копия обычно больше не читается. Вам повезет, если приложение, пытающееся прочитать такую ​​копию, вылетает и умирает. Но более вероятный результат - слегка искаженные данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...