我是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
}
}
答案 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/");
}