我正在从我的服务器下载一个文件(我只获取 lastwritetime 属性的字节和 DateTime),下载数据后,我在本地机器上创建了一个新文件并想要设置 lastwritetime 属性。为此,我使用以下方法:
procedure SetFileDate(const FileName: string; NewDate: TDateTime);
var
FileDate, FileHandle: Integer;
begin
try
FileDate := DateTimeToFileDate(NewDate);
FileHandle := FileOpen(FileName, fmOpenReadWrite or fmShareDenyWrite);
if FileHandle > 0 then
begin
FileSetDate(FileHandle, FileDate);
FileClose(FileHandle);
end;
except
begin
// ERROR Log
err.Msg('FileReqThrd.SetFileDate');
end;
end;
end;
对于“NewDate”参数,我使用从服务器获取的 DateTime。我尝试像这样从服务器转换 DateTime 以获得有效的 lastwritetime(我从 WCF 请求数据,这就是为什么我将其转换为 UTCDateTime,来自 WCF 服务的未触及数据是 TXSDateTime):
TDateTime cloudFileDateTime := StrToDateTime(DateTimeToStr(cloudDownloadResult.FileCloudData.Lastwritetime.AsUTCDateTime));
但最后我的 lastwritetime 属性来自在冬季期间具有 lastwritetime 的文件与-1h 是错误的。
我希望你能理解我的问题,并能告诉我如何解决它。
此致