2017-04-18 266 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(); 

程序將立即下載從遠程服務器的文件需要。

相關問題