我有一个线程用于ReadDirectoryChangesW
在文件夹中添加或删除文件时通知我。
对于每个新图像,我打开文件并创建图像的缩略图。但是,我似乎在文件完全复制到目标文件夹之前收到了通知,在这种情况下,我只会得到部分缩略图。(文件从远程位置复制到中央服务器,网络在高峰时间会变慢。)
我确实检查了文件是否正在使用中,但这似乎不适用于图像文件。
HFileRes := CreateFile(pchar(Filename), GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0) ;
Result := (HFileRes = INVALID_HANDLE_VALUE);
if (not Result) then
CloseHandle(HFileRes) ;
我的问题是:有没有办法检测文件何时被完全复制,还是我只是等到文件大小或上次修改时间自上次检查以来没有改变?