c#不支持给定路径的格式。 UNC路径
问题描述:
我正在尝试访问并从远程服务器下载bak文件,并不断收到错误“给定路径的格式不受支持。” 我使用下面的代码:c#不支持给定路径的格式。 UNC路径
string uncPath = Server.MapPath(Path.Combine(@"\\TSTSVR\Users\temp_databaseBackups_000kfkf000", string.Format("{0}-{1}.bak",
ddlDatabases.SelectedValue, DateTime.Now.ToString("yyyy-MM-dd"))));
//download
WebClient webClient = new WebClient();
webClient.DownloadFile(uncPath, ddlDatabases.SelectedValue + "-" + DateTime.Now.ToString("MM-dd-yyyy:hh:mm"));
我收到错误的DownloadFile线。我是否宣布UNC路径错误?该文件夹位于服务器上,我使用写入权限将访问权限设置为每个人。
答
如果远程机器在Windows控制下工作,则不允许冒号在路径中。
答
少数暗示的从你所有我用下面的代码解决问题的正确方向上的帮助:
string uncPath = Path.Combine(@"\\TSTSVR\Users\temp_databaseBackups_000kfkf000", string.Format("{0}-{1}.bak",
ddlDatabases.SelectedValue, DateTime.Now.ToString("yyyy-MM-dd")));
//download
Response.ContentType = "bak";
Response.AddHeader("Content-Disposition", "attachment;filename=\"" + ddlDatabases.SelectedValue + "-" + DateTime.Now.ToString("MM-dd-yyyy:hh:mm") + "\"");
Response.TransmitFile(uncPath);
Response.End();
程序将立即下载从远程服务器的文件需要。
那么,你正在尝试什么并没有多大意义。该文件是否位于Web服务器中?我认为这是因为你正在使用WebClient对象。 – JuanR
我不确定你在这里试图做什么......'Server.MapPath'被设计为将网站路径转换为物理路径。尝试将UNC路径传递给它是没有意义的。你真的想把UNC路径改成一个网页路径吗?如果是这样,你不能这样做。 – Chris
该文件位于该路径的远程服务器上。 – kristech