客户端怎样下载新文件那?

解决方案 »

  1.   

    《程序员秘书》让所有人轻轻松松搞开发,详见:http://www.psec.net.cn让你一个思路:
    1、客户端的所有文件,在网站上同样要有一份。
    2、客户端和网站上都要一个包括所有文件的文件列表,如一个XML,当然也可以是别的文件类型
    3、客户端每次先下载列表文件,下载完后与客户端的列表文件比较,不相同则有文件要更新,同时生成需要更新的文件列表。
    4、根据更新的文件列表,一个一个的下载文件。
    5、客户端自身要更新,则先下载生成一个临时文件,下载完后运行客户端更新过度(如update.exe),客户端退出,运行中的update.exe将临时文件拷贝为客户端,删除临时文件,再运行客户端,update.exe退出。如果写得好看一些,update.exe可以嵌入到客户端,客户端自身更新时才生成一个update.exe文件,更新完后update.exe也删除。注:判断文件更新没更新可以用MD5方法。
      

  2.   

    《程序员秘书》让所有人轻轻松松搞开发,详见: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, "信息提示");
        }
    }
      

  3.   

    如果写得好看一些,update.exe可以嵌入到客户端,客户端自身更新时才生成一个update.exe文件,更新完后update.exe也删除。
    ---------------------
    请问update.exe怎么嵌入到客户端??谢谢