Pie*_*Wyk 7 delphi readdirectorychangesw file file-in-use
我有一个线程用于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) ;
Run Code Online (Sandbox Code Playgroud)
我的问题是:有没有办法检测文件何时被完全复制,或者我只是等到文件大小或上次修改时间自上次检查后没有改变?
要确定文件传输是否完成,请首先检查您是否可以获得独占访问权限。
FileHandle := FileOpen(FileName, fmOpenRead or fmShareExclusive);
if FileHandle > 0 then
{valid file handle}
Run Code Online (Sandbox Code Playgroud)