windows form中将服务器端的文件保存到客户端

时间:2014-06-24 10:55:43   收藏:0   阅读:221

      开发中常常遇到这样的问题:需要将服务器端的文件下载到客户端。这种情况分为两种,一种是windows环境,一种是web环境。前两天在winform开发中就遇到过这样一个问题,上网搜索后没有发现现成的demo,所以自己花费了一点时间,做了一个简单的文件保存的demo,分享如下:

     首先需要写一个下载的方法,将其抽象为一个静态类,以方便调用,如下:

    

public static class FileHelper
    {
        /// <summary>
        /// 下载服务器文件至客户端,Create By Wangjianhui
        /// </summary>
        /// <param name="URL">被下载的文件地址,绝对路径</param>
        /// <param name="DirFilePath">另存放的目录</param>
        public static void DownloadFileToLocal(string URL, string DirFilePath,out string errorMeesage)
        {
            WebClient client = new WebClient();
            string fileName = URL.Substring(URL.LastIndexOf("\\") + 1);  //被下载的文件名
            //string Path = Dir + fileName;   //另存为的绝对路径+文件名

            try
            {
                WebRequest myre = WebRequest.Create(URL);
                errorMeesage = String.Empty;
            }
            catch (Exception e1)
            {
                errorMeesage = e1.Message;
                //MessageBox.Show(e1.Message, "Error");
            }

            try
            {
                client.DownloadFile(URL, DirFilePath);
                errorMeesage = String.Empty;
            }
            catch (Exception e2)
            {
                errorMeesage = e2.Message;
                //MessageBox.Show(e2.Message, "Error");
            }
        }
    }

现在遇到一个难点,就是保存的路径不能写死,而是由客户自己指定,由此很自然的想到了SaveFileDialog控件,在Form窗体中添加一个SaveFileDialog控件,保存按钮的代码如下:

     private void btnSave_Click(object sender, EventArgs e)
        {
             string sourceFile="E:\\FileFolder\\123.fff";
            System.IO.FileInfo f = new System.IO.FileInfo(sourceFile);
            string sourceFileName = f.Name;//原文件名称

            string dirFilePath = string.Empty;
            saveFileDialogForFFF.FileName = sourceFileName;
            saveFileDialogForFFF.Filter = "电子书文件(.fff)|*.fff";
            if (saveFileDialogForFFF.ShowDialog() == DialogResult.OK)
            {
                dirFilePath = saveFileDialogForFFF.FileName;
            }
           string errorMessage = string.Empty;
           FileHelper.DownloadFileToLocal(sourceFile, dirFilePath, out errorMessage);
           if (!string.IsNullOrEmpty(errorMessage))
           {
               MessageBox.Show(errorMessage);
           }
           else
           {
               MessageBox.Show("The file has been saved successfully");
           }
        
        }

当打开SaveFileDialog控件时,文件名称的文本框中默认为原文件名称,也可以手动改写为其它名称,通过导向选择要保存的路径,点击确定按钮,服务器端的文件就会被保存到客户端相应的路径下!

  

 

    

 

windows form中将服务器端的文件保存到客户端,布布扣,bubuko.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!