想做一个简单的 提示更新
我现在的思路是
在FTP 上放个 1.txt 并取得 1.txt的修改时间
当用户 使用软件的登陆的时候 会把 配置文件中的时间和 1.txt的修改时间做比较
如果相同 登陆成功
如果不同 就提示软件有更新 请到网站下载最新版本
不知道哪位有没有更好的方法指点一下
如果我的思路还可以的话
那么应该如何 获取FTP中的1.txt的修改时间
请高手指点一下
我现在的思路是
在FTP 上放个 1.txt 并取得 1.txt的修改时间
当用户 使用软件的登陆的时候 会把 配置文件中的时间和 1.txt的修改时间做比较
如果相同 登陆成功
如果不同 就提示软件有更新 请到网站下载最新版本
不知道哪位有没有更好的方法指点一下
如果我的思路还可以的话
那么应该如何 获取FTP中的1.txt的修改时间
请高手指点一下
解决方案 »
- 求助!编写一个集成多个控件的自定义组件出错,"Control '' has no parent window"
- 请问如何做客户端和服务端的连接 如何做多线程 delphi7
- delphi 关于ACREPORT报表打印问题.
- DLL函数返回PChar类型字符串, 在调用这个DLL函数显示结果后面会多出一个#14这个字符, 为什么?
- 新手求助~请问在delphi中如何做出这样的表格!头都要大了~
- SQL.text的Where子句中如何使用StrToDate()函数?
- 一个问题,搞的我好几个星期了,请delphi大人帮帮忙,在这先谢了。
- 用FastReport怎么打印SQL Server数据库里面的用JPG格式存储的图片?
- 请部各位delphi有没有分割两个字符的函数.
- 如何修改文件的日期?
- 提问程序死循环的检测...
- 如何POST数据到目标服务器
我建议LZ看一下,AutoUpgrader 的源代码。
既然现在文件升级都使用版本比较,为什么不在配置文件中使用版本呢?
那么应该 如何获取 这个配置文件的版本号信息呢?
http://www.2ccc.com/search.asp?keyword=%D7%D4%B6%AF%B8%FC%D0%C2&keyrange=0&Catalog=0&SubCatalog=0&Submit=%CC%E1%BD%BB
以下给你提供几个文件操作函数,希望能给你帮助(别忘记结贴给分!)
//获取当前文件的版本号 GetFileVersion
var
s: string;
i: Integer;
begin
s := 'C:\WINDOWS\notepad.exe';
i := GetFileVersion(s); //如果没有版本号返回 -1
ShowMessage(IntToStr(i)); //327681 这是当前记事本的版本号(还应该再转换一下)
end;
//获取文件的创建时间 FileAge; FileDateToDateTime
var
FileName: string;
ti: Integer;
dt: TDateTime;
begin
FileName := 'c:\temp\Test.txt';
ti := FileAge(FileName);
ShowMessage(IntToStr(ti)); //返回: 931951472, 需要转换 dt := FileDateToDateTime(ti); //转换
ShowMessage(DateTimeToStr(dt)); //2007-12-12 14:27:32
end;
[Version]
Version=1.2
然后将 s := 'C:\WINDOWS\1.ini';
返回为-1 未获取版本号
这个版本号 在配置文件里应该怎么写呢?
var
IniFile:TIniFile;
szStr:String;
T2:String;
TempList:TStrings;begin
szStr:=ExtractFilePath(Application.ExeName)+'Test.ini';
IniFile:=TIniFile.Create(szStr);
TempList:=TStringList.Create;
IniFile.ReadSectionValues('Version',TempList);
T2 := TempList[0];
Edit1.Text:=T2;
//Destroy
IniFile.Free;
TempList.Free;end;
此段代码能够将软件客户端配置文件Test.ini中的Version=1.2 附给T2
那么只要能够获取 FTP服务器上的 1.ini的Version的值
并附给T3
将T2与T3比较
不同就提示升级
现在的问题是如何获取 FTP服务器上的 1.ini的Version的值
高手指点一下
1.ini 在FTP 服务器上
我就不知道怎么弄了
唯一的区别就是
一个是客户端的 一个是FTP服务器上的
1.客户端一登陆,就读取当前配置文件中的VERSION,然后发送给服务端;
2.服务端接收到后,读取服务器上的VERSION,在服务器端进行比较
简单一些
我现在的问题就是 如何把ini文件下载到本地 和比较之后的删除啊
var DownloadFile:TFileStream;
DownloadFile:=TFileStream.Create(ExtractFileDir(Application.ExeName)+'\update.ini,fmCreate);
IdHTTP1.Get('服务器地址',DownloadFile);
except on E:Exception do
begin
showmessage('网络未连接将无法检测到更新程序');
end;
end;
DownLoadFile.Free;
version=2本地 ini文件
[LocalService config]
version=1var iniF:TIniFile,version1:string,version2:string;
iniF:=TIniFile.Create(ExtractFileDir(Application.ExeName)+'/下载的ini文件);version1:=iniF.ReadString('WebService config','version','');
iniF:=TIniFile.Create(ExtractFileDir(Application.ExeName)+'/本地的ini文件);
version2:=iniF.ReadString(LocalService config','version','');
比较 version1 和 version2
然后更新,更新完删除下载的ini文件下载文件也是用 IdHTTP1.Get()