WebClient.DownloadFile路径问题

问题描述:

我使用WebClient.DownloadFile到相关图片如下下载到本地存储库:WebClient.DownloadFile路径问题

  WebClient myWC = new WebClient(); 
      myWC.Credentials = new System.Net.NetworkCredential(username, password); 
      string photoPath = @"\images\Employees\" + employee + ".jpg"; 
      myWC.DownloadFile(userResult[12].Values[0].Value.ToString(), photoPath); 

我的预期结果如下:我的web应用程序部署在这里:

C:\的Inetpub \ wwwroot的\ MyWebApp

我想到这将照片保存到

C:\的Inetpub \ wwwroot的\ MyWebApp \ \图片...员工

相反,我所有的照片在这里得到保存:

C:\ \图片员工

我想我没有完全理解DownloadFile方法,因为我觉得路径应该与应用程序所在的目录相关。我如何更改路径以使其相对于应用程序的目录?

注:我不希望因为我有一个开发和QA站点使用一个物理路径,我不想路径突破,如果事情得到解决移动。

在ASP.NET应用程序,你可以使用Server.MapPath方法的网站相对的内映射到物理文件夹到你的站点的根目录(由~表示):

string photoPath = Server.MapPath("~/images/Employees/" + employee + ".jpg"); 
+0

U可以用户'HttpContext.Current.Server.MapPath(“”)'' – Ricardo

领先您的photoPath中的反斜杠使路径成为从根目录开始的绝对路径(在您的示例中为C:\)。不要使其成为相对路径只是删除前导反斜杠:

string photoPath = @"images\Employees\" + employee + ".jpg"; 

备注:DownloadFile(...)不会为你创建的目录。确保它在那里:

Directory.CreateDirectory("images\Employees");