2017-04-18 489 views
0

我正在尝试访问并从远程服务器下载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路径错误?该文件夹位于服务器上,我使用写入权限将访问权限设置为每个人。

+0

那么,你正在尝试什么并没有多大意义。该文件是否位于Web服务器中?我认为这是因为你正在使用WebClient对象。 – JuanR

+0

我不确定你在这里试图做什么......'Server.MapPath'被设计为将网站路径转换为物理路径。尝试将UNC路径传递给它是没有意义的。你真的想把UNC路径改成一个网页路径吗?如果是这样,你不能这样做。 – Chris

+0

该文件位于该路径的远程服务器上。 – kristech

回答

-1

如果远程机器在Windows控制下工作,则不允许冒号在路径中。

0

少数暗示的从你所有我用下面的代码解决问题的正确方向上的帮助:

 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(); 

程序将立即下载从远程服务器的文件需要。

相关问题