我做了类似下面的代码:
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = Session["loginid"].ToString();
}
protected void delete_click(object sender, EventArgs e)
{
delete("mail1",Session["loginid"]);
}
private int delete(string mailid, string user)
{
System.IO.Directory.Delete(Server.MapPath(@"~\files\" + user + @"\" + mailid), true);
}
当我按下删除按钮时,一切正常,文件夹被删除。但在那之后,当页面再次回发时,会在 Label1.Text = Session["loginid"].ToString(); 处引发 NullRefrenceException
为什么会这样……??
当我不使用此 Directory.Delete() 方法时,一切正常,会话变量未设置为 null。
当我跟踪我的应用程序时,我发现在 Directory.Delete() 方法之后会话变量是完整的,并且我能够在 Directory.Delete() 之后的处理中使用这些会话变量。
但是一旦页面回发,所有会话变量都设置为空。当我不使用此 delete() 方法时,不会出现此问题。
我要删除的文件夹在我的项目文件夹中。我正在使用 Visual Studio 运行这个网站。
请帮忙。