当Directory.CreateDirectory()运行时处理UnauthorizedAccessException

时间:2016-10-21 06:43:56

标签: c#

我有一个方法有助于创建目录ifNotExist并保存文件的路径,... 现在我有一点问题,Directory.CreateDirectory(savePath);运行时有一个异常。我仍然无法做对。我想知道我做错了什么以及如何解决它。欢迎任何人提出申诉。谢谢

这是我的方法:

protected void ASPxUpload_FileUploadComplete(object sender, DevExpress.Web.FileUploadCompleteEventArgs e)
    {
        if (e.IsValid)
        {
            String savepath = String.Format("{0}{1}\\", MapPath(@"~\TicketUploads\"), Session["lastcallid"]);
            if (!Directory.Exists(savepath))
            {
                Directory.CreateDirectory(savepath);
            }
            String savefile = String.Format("{0}{1}", savepath, e.UploadedFile.FileName);
            e.UploadedFile.SaveAs(savefile);
            String urlPath = String.Format("{0}{1}\\{2}", @"~\TicketUploads\", Session["lastcallid"], e.UploadedFile.FileName);
            fault_detail fltdet = session.GetObjectByKey<fault_detail>(Convert.ToInt32(Session["lastcallid"]));
            fltdet.hasattachment = "Y";
            fltdet.AttachUrl = urlPath;
            fltdet.Save();
        }
    }

有关我尝试做的更多详细信息:  它简单允许Web服务器识别日志用户的ID。因此,我们应该使用该ID在 Ticketuploads 文件夹中创建一个文件夹。这就像我们试图同时创建2个文件夹。这就是我使用"{0}{1}\\"

的原因

1 个答案:

答案 0 :(得分:2)

请试试这个

string sessionVariable = Convert.ToString(Session["lastcallid"]); 

string path = Path.Combine(MapPath(@"~\TicketUploads\"), sessionVariable);
if (!Directory.Exists(path))
{
    Directory.CreateDirectory(path);
}

同时

我已向文件夹添加管理权限。作为IIS系统的本地用户。 user添加示例:IIS_IUSRS(Username\IIS_IUSRS)就是这样。