System.IO.DirectoryNotFoundException

时间:2016-02-07 15:52:42

标签: asp.net sql-server exception

我希望你们中的一个能够帮助我解决我在代码中收到的错误。请注意,我的经验有限,所以我将不胜感激! :)

当我点击我的"添加新产品" (btnSubmit),我收到以下错误消息:

  

类型' System.IO.DirectoryNotFoundException'的例外情况发生在mscorlib.dll中但未在用户代码中处理

代码:              private void SaveProductPhoto()              {                  if(PPhoto.PostedFile!= null)             {                 string PName = PPhoto.PostedFile.FileName.ToString();                        string fileExtension = System.IO.Path.GetExtension(PPhoto.FileName);

                 }
            //Save images into Images folder
            else
            {
                PPhoto.SaveAs(Server.MapPath("~/PImg/" + PName));

            }
        }
    }

我的代码在这一行失败了:

UploadProductPhoto.SaveAs(Server.MapPath("~/ProductImages/" + PName));

2 个答案:

答案 0 :(得分:0)

请检查路径和文件是否已存在。你可以看到你收到错误"无法找到路径的一部分' \ stu-storage2 \ user-area \ 3 \ mj350 \ Desktop \ CWWebsite \ CWWebsite \ ProductImages \ stu-storage2 \ user-区域\ 3 \ mj350 \桌面\ 1.JPG'"

表示文件或文件路径错误

答案 1 :(得分:0)

以下行不正确:

UploadProductPhoto.SaveAs(Server.MapPath("~/ProductImages/" + fileName));

这是不正确的,因为您使用Server.MapPath关于不存在的路径"~/ProductImages/" + fileName

要修复它,您必须首先获取要放置图像的目录路径,然后将其与文件名组合在一起,如下所示:System.Io.Path.Combine(Server.MapPath("~/ProductImages/"), fileName)

请注意,Server.MapPath仅包含"~/ProductImages/"

最后,您将获得类似下面代码的内容。

UploadProductPhoto.SaveAs(
     System.IO.Path.Combine(Server.MapPath("~/ProductImages/"), fileName)
);