C# 运行Directory.CreateDirectory()时处理UnauthorizedAccessException

C# 运行Directory.CreateDirectory()时处理UnauthorizedAccessException,c#,C#,我有一个方法可以帮助创建一个目录ifNotExist并保存文件的路径,。。。 现在我有一个小问题,当Directory.CreateDirectory(savePath)时抛出了一个异常运行。但我还是不能把它做好。我想知道我做错了什么,以及如何修复它。任何人都受欢迎。谢谢 以下是我的方法: protected void ASPxUpload_FileUploadComplete(object sender, DevExpress.Web.FileUploadCompleteEventArgs e

我有一个方法可以帮助创建一个目录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();
        }
    }
protectedvoid ASPxUpload\u FileUploadComplete(对象发送者,DevExpress.Web.FileUploadCompleteEventArgs e)
{
如果(e.IsValid)
{
String savepath=String.Format(“{0}{1}\\”,映射路径(@“~\TicketUploads\”),会话[“lastcallid]”);
如果(!Directory.Exists(savepath))
{
CreateDirectory(保存路径);
}
String savefile=String.Format(“{0}{1}”,savepath,e.UploadedFile.FileName);
e、 UploadedFile.SaveAs(savefile);
字符串urlPath=String.Format(“{0}{1}\\\{2}”,@“~\TicketUploads\”,Session[“lastcallid”],e.UploadedFile.FileName);
fault_detail fltdet=session.GetObjectByKey(Convert.ToInt32(session[“lastcallid]”));
fltdet.hasattachment=“Y”;
fltdet.AttachUrl=urlPath;
fltdet.Save();
}
}
有关我尝试执行的操作的更多详细信息: 它允许web服务器识别日志用户的ID。因此,使用该ID,我们应该在Ticketuploads文件夹中创建一个文件夹。这就像我们试图同时创建两个文件夹。这就是为什么我使用:
“{0}{1}\\\”

请尝试这个

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

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

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

请尝试此操作

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

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



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

建议:请使用
路径。组合
而不是
字符串。格式化
尝试以管理员身份运行。@AmeyKamat,感谢您的回复。但我刚刚试过你说的话。我有一个错误用户:
Session[“lastcallid”]
它说:CAA不能从对象转换为字符串。@CodeJoy,我已经作为管理员运行了,谢谢。@CodeJoy,以下是完整的异常消息:
在mscorlib.dll中发生了类型为“System.UnauthorizedAccessException”的异常,但未在用户代码中处理。建议:请使用
路径。组合
而不是
字符串。格式化
尝试以管理员身份运行它。@AmeyKamat,感谢您的回复。但我刚刚试过你说的话。我有一个错误用户:
Session[“lastcallid”]
它说:CAA不能从对象转换为字符串。@CodeJoy,我已经作为管理员运行了,谢谢。@CodeJoy,以下是完整的异常消息:
在mscorlib.dll中发生了类型为“System.UnauthorizedAccessException”的异常,但未在用户代码中处理
UnauthorizedAccessException被处理
仍在强制转换。它可能需要权限,但我也尝试过:[(
转到属性-->共享-->高级共享-->权限
)仍然对我不起作用。@MichealP.您能给出会话[“lastcallid”]
的值吗?对于该会话,
会话[“lastcallid”]
=1250057。它简单地允许Web服务器识别日志用户的ID。因此,使用该ID,我们应该在
Ticketuploads
文件夹中创建一个文件夹。这就像我们试图同时创建两个文件夹。这就是为什么我使用:
“{0}{1}\\”
@MichealP.上述代码有效。我的代码中唯一的更改是
string sessionVariable=Convert.ToString(1250057);string path=path.Combine(@“E:\TicketUploads\”,sessionVariable)
您正在编写,这就解决了问题。我去寻找应用程序设置的权限。我发现整个文件夹不允许用户添加任何子文件夹。另外,通过将路径转换为字符串,我看到根目录读得很清楚!感谢您所做的一切。
UnauthorizedAccessException是句柄
仍在强制转换。可以吗需要权限,但我也尝试过:[(
转到属性-->共享-->高级共享-->权限
)仍然不适用于我。@MichealP.您能给出会话[“lastcallid”]
的值吗?对于该会话,
会话[“lastcallid”]
=1250057。它简单地允许Web服务器识别日志用户的ID。因此,使用该ID,我们应该在
Ticketuploads
文件夹中创建一个文件夹。这就像我们试图同时创建两个文件夹。这就是为什么我使用:
“{0}{1}\\”
@MichealP.上述代码有效。我的代码中唯一的更改是
string sessionVariable=Convert.ToString(1250057);string path=path.Combine(@“E:\TicketUploads\”,sessionVariable)
您正在编写,这就解决了问题。我去寻找应用程序设置的权限。我发现整个文件夹不允许用户添加任何子文件夹。另外,通过将路径转换为字符串,我看到根目录读得很清楚!感谢您所做的一切。