怎样做个软件升级? 客户端怎样下载新文件那? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 《程序员秘书》让所有人轻轻松松搞开发,详见:http://www.psec.net.cn让你一个思路:1、客户端的所有文件,在网站上同样要有一份。2、客户端和网站上都要一个包括所有文件的文件列表,如一个XML,当然也可以是别的文件类型3、客户端每次先下载列表文件,下载完后与客户端的列表文件比较,不相同则有文件要更新,同时生成需要更新的文件列表。4、根据更新的文件列表,一个一个的下载文件。5、客户端自身要更新,则先下载生成一个临时文件,下载完后运行客户端更新过度(如update.exe),客户端退出,运行中的update.exe将临时文件拷贝为客户端,删除临时文件,再运行客户端,update.exe退出。如果写得好看一些,update.exe可以嵌入到客户端,客户端自身更新时才生成一个update.exe文件,更新完后update.exe也删除。注:判断文件更新没更新可以用MD5方法。 《程序员秘书》让所有人轻轻松松搞开发,详见:http://www.psec.net.cn方法很多,可以单线程也可以多线程,可以用FTP、Socket、Xmlhttpt和HttpWebRequest等等。摘录:《程序员秘书》--源代码--网络--用Xmlhttp下载文件private void button1_Click(object sender, EventArgs e){ downfile(textBox1.Text);//下载文件}8、在Form1.cs的代码设计器中,添加如下代码private void downfile(string Url)//下载文件{ try { string StringFileName = Url.Substring(Url.LastIndexOf("/") + 1); SaveFileDialog SaveFileDialog1 = new SaveFileDialog(); SaveFileDialog1.FileName = StringFileName;//本地文件名与远程文件名一般应相同 if (SaveFileDialog1.ShowDialog() == DialogResult.OK) { MSXML2.XMLHTTP _xmlhttp = new MSXML2.XMLHTTPClass(); _xmlhttp.open("GET", Url, false, null, null); _xmlhttp.send(""); if (_xmlhttp.readyState == 4) { FileStream fs = new FileStream(SaveFileDialog1.FileName, FileMode.Create);//指定操作系统应创建新文件。如果文件已存在,它将被改写。 BinaryWriter w = new BinaryWriter(fs); w.Write((byte[])_xmlhttp.responseBody); w.Close(); fs.Close(); MessageBox.Show("文件已下载完成!", "信息提示"); } else { MessageBox.Show("文件不能下载!", "信息提示"); } } } catch (Exception Exc) { MessageBox.Show(Exc.Message, "信息提示"); }} 如果写得好看一些,update.exe可以嵌入到客户端,客户端自身更新时才生成一个update.exe文件,更新完后update.exe也删除。---------------------请问update.exe怎么嵌入到客户端??谢谢 C#求助 大神,高手进....... SqlTransaction 事务处理对象是否有修改次数的限制 VS2008生成安装 关于安装程序不覆盖旧的Access文件 高手请进,请问怎么实现通过鼠标同时画三条平行线? 从面向过程到面向对象编程 请教高手一段datatable代码 google搜不到的字符!! 有谁知道铁路自助机上运行的软件是用什么工具开发的; c#中listview的列通过鼠标右击时间选择增加或减少列,请教该怎么实现!在线等待 C#中如何在数字中插入逗号,如130000,变成130,000 用户控件的引用问题
1、客户端的所有文件,在网站上同样要有一份。
2、客户端和网站上都要一个包括所有文件的文件列表,如一个XML,当然也可以是别的文件类型
3、客户端每次先下载列表文件,下载完后与客户端的列表文件比较,不相同则有文件要更新,同时生成需要更新的文件列表。
4、根据更新的文件列表,一个一个的下载文件。
5、客户端自身要更新,则先下载生成一个临时文件,下载完后运行客户端更新过度(如update.exe),客户端退出,运行中的update.exe将临时文件拷贝为客户端,删除临时文件,再运行客户端,update.exe退出。如果写得好看一些,update.exe可以嵌入到客户端,客户端自身更新时才生成一个update.exe文件,更新完后update.exe也删除。注:判断文件更新没更新可以用MD5方法。
摘录:《程序员秘书》--源代码--网络--用Xmlhttp下载文件
private void button1_Click(object sender, EventArgs e)
{
downfile(textBox1.Text);//下载文件
}
8、在Form1.cs的代码设计器中,添加如下代码
private void downfile(string Url)//下载文件
{
try
{
string StringFileName = Url.Substring(Url.LastIndexOf("/") + 1);
SaveFileDialog SaveFileDialog1 = new SaveFileDialog();
SaveFileDialog1.FileName = StringFileName;//本地文件名与远程文件名一般应相同
if (SaveFileDialog1.ShowDialog() == DialogResult.OK)
{
MSXML2.XMLHTTP _xmlhttp = new MSXML2.XMLHTTPClass();
_xmlhttp.open("GET", Url, false, null, null);
_xmlhttp.send("");
if (_xmlhttp.readyState == 4)
{
FileStream fs = new FileStream(SaveFileDialog1.FileName, FileMode.Create);//指定操作系统应创建新文件。如果文件已存在,它将被改写。
BinaryWriter w = new BinaryWriter(fs);
w.Write((byte[])_xmlhttp.responseBody);
w.Close();
fs.Close();
MessageBox.Show("文件已下载完成!", "信息提示");
}
else
{
MessageBox.Show("文件不能下载!", "信息提示");
}
}
}
catch (Exception Exc)
{
MessageBox.Show(Exc.Message, "信息提示");
}
}
---------------------
请问update.exe怎么嵌入到客户端??谢谢