正在做一个网络硬盘,在重命名文件夹的时候遇到咯一个问题
点击更名时连接到更改名称的那个页面,更改后返回以前一个页面
我用Session["path"]来保存用户当前所在目录的路径
当我执行了修改后,文件成功改名,但是返回前一个页面时出现错误
查找了下原因是Session["path"]的值被设置成了NULL,不知道是什么原因
private void btnOK_Click(object sender, System.EventArgs e)
{
     string []folders=Directory.GetDirectories(Session["path"].ToString().Trim());
     foreach(string folder in folders)
    {
        DirectoryInfo mydir=new DirectoryInfo(folder);
        if(mydir.Name.ToString()==this.Label1.Text.Trim())
        {
  try
  {
       Directory.Move(Session["path"].ToString()+"\\"+this.Label1.Text.Trim(),Session["path"].ToString()+"\\"+this.TextBox1.Text.Trim());
                Response.Redirect("myfile.aspx");
  }
  catch{}
  finally{}
}
}

解决方案 »

  1.   

    看看你的session声明在什么地方
      

  2.   

    Session申明没有问题,
    检查了一下,在执行更名前, Session值都还是正确的,但是执行这一段后
     Directory.Move(Session["path"].ToString()+"\\"+this.Label1.Text.Trim(),Session["path"].ToString()+"\\"+this.TextBox1.Text.Trim());
    Session值就变咯,不知道是不是这段出咯什么问题.
      

  3.   

    同样的结构
    File.Move(Session["path"].ToString()+"\\"+this.Label1.Text.Trim(),Session["path"].ToString()+"\\"+this.TextBox1.Text.Trim());
    用来更改文件名就没有问题,怎么更改文件夹名的出错咯呢?
      

  4.   

    你把session的值先传给几个string的变量,然后调用他们来处理看看session是不是不受影响了?
      

  5.   

    在本业的Session值都还是正确的,但是用 Response.Redirect("myfile.aspx");返回前一页的时候Session的值就为null了但在同一页面下更改文件名返回后就没问题-_-!!
      

  6.   

    怎么更改文件夹名时Session重置????是不是asp.net内部是这样设置的,若站点内任何文件名改变,Session被清空。类似于web.config修改。????搂主可以可以确认一下是不是这样的。
      

  7.   

    -_-!!
    还真是这样的,那应该怎么解决呢?随便再问个问题DataGrid中按钮列我用图标代替咯文本,但是图标会有个蓝色的小框,不知道能不能让他没有这个小框啊?
      

  8.   

    想到咯一个方法,就是把这个共享文件夹放到站点以外的地方就没问题咯,用DataGrid中的超级连接列将要修改的文件名传到下一页为什么如果名字是一个中文字符的话下面的页面接收不到,一个字符以上就行,而英文字符不管是一个还是多个都没问题?
      

  9.   

    url字段是:filename
    url格式字符串是:rename.aspx?fileoldname={0}
      

  10.   

    去掉边框:<img src="***" border=0>