在winforms中保存文件

时间:2016-08-22 10:50:37

标签: c# winforms

我是winforms的新手。当我尝试使用下面的代码在winforms中保存文件时,它会给出一个错误消息:URI formats are not supported.

请告诉我如何将文件从源路径保存到目标路径。提前致谢。这是我的代码:

 private void BtnBussinessBalanceSheet_Click(object sender, EventArgs e)
        {
            var sourceFile = "http://112.196.33.86:131/Documents/BussinessDocuments/";
            if (BrwsBussinessTaxReturn.ShowDialog() == DialogResult.OK)
            {
                BrwsBussinessTaxReturn.Filter = "Excel Files|*.xls;*.xlsx;*.xlsm|Text|*.txt|Office Files|*.doc;*.xls;*.ppt";
                File.Copy(BrwsBussinessTaxReturn.FileName, sourceFile + BrwsBussinessTaxReturn.SafeFileName); //error occured

            }
        }

2 个答案:

答案 0 :(得分:1)

您不能使用System.IO.File从URI复制文件,您必须将文件下载到临时位置并使用System.IO.File.Copy(fromPath,toPath)复制它; 由于错误说“不支持URI格式”。你不能复制URI。从Internet下载文件的代码:

using (var client = new WebClient())
{
    client.DownloadFile("http://blablabla.pl/file.png", "C:\Path\To\Save\File\a.png");
}

我建议在另一个线程上使用它,下载大文件可能会冻结UI线程!

下一个错误是:BrwsBussinessTaxReturn.Filter = "Excel Files|*.xls;*.xlsx;*.xlsm|Text|*.txt|Office Files|*.doc;*.xls;*.ppt"; 应在BrwsBussinessTaxReturn.ShowDialog();

之前定义

答案 1 :(得分:0)

可能会有点迟,但是我建议您使用httpclient这样下载它:

    private async void getfile()
    {
        HttpClient c = new HttpClient();
        string file = await c.GetStringAsync("http://example.com/");
    }