我做了一个Delphi应用程序,它定期下载一个zip文件(update.zip)。在zip文件中有DLL和Exe。 解压zip文件,并将DLL和Exes复制到正确的文件夹。如何检查是否已经下载zipfile
我想知道的是如何知道客户端是否已下载zip文件,因此无需再次下载。因为它已经被客户端处理了。但是,当zipfile的内容已更改,然后 它必须再次下载zip文件。
如果我们建立一个新的DLL或Exe,zipfiles的内容可以改变。但是zipfile的名字是相同的。
我做了一个Delphi应用程序,它定期下载一个zip文件(update.zip)。在zip文件中有DLL和Exe。 解压zip文件,并将DLL和Exes复制到正确的文件夹。如何检查是否已经下载zipfile
我想知道的是如何知道客户端是否已下载zip文件,因此无需再次下载。因为它已经被客户端处理了。但是,当zipfile的内容已更改,然后 它必须再次下载zip文件。
如果我们建立一个新的DLL或Exe,zipfiles的内容可以改变。但是zipfile的名字是相同的。
如果您想知道在不下载zip文件的情况下是否更改了zip文件,那么您的服务器将不得不提供一些其他方式来发现服务器上的DLL和EXE版本。这可能与在服务器上保留文本文件一样简单。下载该文件而不是整个zip文件。如果该文本文件中的版本比本地版本更新,请下载zip文件。
您也可以避免在第一次处理zip文件后删除它。您可以将文本文件版本与磁盘上实际文件的版本进行比较,而不是将文本文件中的版本与本地压缩文件中的文件版本进行比较。
好的。感谢Rob。 – user3552264
你可以做一个HTTP HEAD;并检查文件最后修改日期在服务器和本地如果更改下载新文件。
uses
......, IdHTTP;
function getHTTPLastModified(url: string): TDateTime;
var
HTTP: TIdHTTP;
begin
try
try
HTTP := TIdHTTP.Create(nil);
HTTP.Head(url);
result:=HTTP.Response.LastModified;
except
on E: Exception do
//ShowMessage('ProcessHttpRequest failed.');
result := 0;
end;
finally
try
HTTP.Disconnect;
except
end;
end;
end;
嗨shobits1,你能给我一个示例代码如何做到这一点 – user3552264
这非常依赖于服务器。许多Web服务器不提供此功能。最重要的是,读取文件的最后修改日期并不总是保证。这可以被覆盖。 –
@user好像你希望我们为你编写程序 –
所以,你要知道,如果你的拉链filce包含一定的版本号 –
的EXE/DLL好,记住,如果你已经做了,再如果你没有 –
不这样做,并压缩档案库你正在用吗? –