WebClient.DownloadFile路径问题

时间:2011-10-10 17:07:41

标签: c# .net

我使用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);

我的预期结果如下:我的网络应用程序部署在此处:

  

C:\的Inetpub \ wwwroot的\ MyWebApp

我希望这可以将照片保存到

  

C:\的Inetpub \ wwwroot的\ MyWebApp \图像\雇员...

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

  

C:\ IMAGES \雇员

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

注意:我不想使用物理路径,因为我有一个Dev和QA网站,如果事情被移动,我不希望路径中断。

3 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:1)

photoPath中的前导反斜杠使路径成为从根目录开始的绝对路径(示例中为C:\)。确保它成为相对路径只需删除前导反斜杠:

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

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

Directory.CreateDirectory("images\Employees");

答案 2 :(得分:0)

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

在powershell中不起作用,并出现以下错误:

At line:1 char:22
+ string photoPath = @"images\Employees\" + employee + ".jpg";
+                      ~
No characters are allowed after a here-string header but before the end of the line.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : UnexpectedCharactersAfterHereStringHeader