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");
答
领先您的photoPath
中的反斜杠使路径成为从根目录开始的绝对路径(在您的示例中为C:\
)。不要使其成为相对路径只是删除前导反斜杠:
string photoPath = @"images\Employees\" + employee + ".jpg";
备注:DownloadFile(...)
不会为你创建的目录。确保它在那里:
Directory.CreateDirectory("images\Employees");
U可以用户'HttpContext.Current.Server.MapPath(“”)'' – Ricardo