Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么在我的MVC应用程序中创建目录不起作用?_C#_Asp.net Mvc - Fatal编程技术网

C# 为什么在我的MVC应用程序中创建目录不起作用?

C# 为什么在我的MVC应用程序中创建目录不起作用?,c#,asp.net-mvc,C#,Asp.net Mvc,我正在创建一个web应用程序,我允许我的用户以其中一种形式上传文件。我希望我的方法在启动上载时创建一个文件夹,该文件夹具有传入参数的名称,在本例中为ID public ActionResult Async_Save(IEnumerable<HttpPostedFileBase> files, int? id) { if (files != null) { string filepath = "/Content/CarData/"; Di

我正在创建一个web应用程序,我允许我的用户以其中一种形式上传文件。我希望我的方法在启动上载时创建一个文件夹,该文件夹具有传入参数的名称,在本例中为ID

public ActionResult Async_Save(IEnumerable<HttpPostedFileBase> files, int? id)
{
    if (files != null)
    {
        string filepath = "/Content/CarData/";
        Directory.CreateDirectory(filepath + id);

        foreach (var file in files)
        {
            var fileName = Path.GetFileName(file.FileName);
            var physicalPath = Path.Combine(Server.MapPath(filepath + id), fileName);
            file.SaveAs(physicalPath);
        }
    }
    return Content("");
}
public ActionResult异步保存(IEnumerable文件,int?id)
{
如果(文件!=null)
{
字符串filepath=“/Content/CarData/”;
Directory.CreateDirectory(filepath+id);
foreach(文件中的var文件)
{
var fileName=Path.GetFileName(file.fileName);
var physicalPath=Path.Combine(Server.MapPath(filepath+id),文件名);
file.SaveAs(物理路径);
}
}
返回内容(“”);
}
但是,当用户上载文件时,会抛出一个错误:

System.IO.DirectoryNotFoundException:'找不到 路径 'C:\GitRepos\MyProject\MyProject\Content\CarData\206\mclaren.jpg'


这是准确的,因为我可以看到目录没有被创建。谁能帮助我理解出了什么问题?我在
Directory.CreateDirectory(filepath+id)上没有发现错误方法的一部分。

默认情况下,应用程序池不具有创建目录的系统级访问权限。基本上,它没有足够的权限这样做。尝试为您的应用程序池创建一个具有提升权限的用户。为什么您认为在一次尝试与文件系统对话时需要使用
MapPath
,而在另一次与文件系统对话时不使用它?