windows form中將伺服器端的檔案儲存到用戶端

來源:互聯網
上載者:User

標籤:winform   style   class   blog   code   tar   

      開發中常常遇到這樣的問題:需要將伺服器端的檔案下載到用戶端。這種情況分為兩種,一種是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控制項時,檔案名稱的文字框中預設為原檔案名稱,也可以手動改寫為其它名稱,通過導向選擇要儲存的路徑,點擊確定按鈕,伺服器端的檔案就會被儲存到用戶端相應的路徑下!

  

 

    

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.