以winforms保存文件
本文关键字:保存文件 winforms | 更新日期: 2023-09-27 18:03:36
我是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
}
}
不能使用System.IO.File从URI复制文件,必须将文件下载到临时位置,然后使用System.IO.File.copy(fromPath,toPath(进行复制;正如错误所说的"不支持URI格式。"你不能复制URI。从互联网下载文件的代码:
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();
之前定义
可能有点晚,但我建议您使用如下的http客户端下载:
private async void getfile()
{
HttpClient c = new HttpClient();
string file = await c.GetStringAsync("http://example.com/");
}