在web项目中对服务器上的文件进行管理,其中有个功能是文件夹的重命名我在msnd中没找到直接更改文件夹名字的办法,只能通过复制我是这样的的
public string renameDir(string oldPath,string newPath)
{
DirectoryInfo di = new DirectoryInfo(newPath);
if (di.Exists == true)
{
return "重名!";
}
else
{
DirectoryInfo dis = new DirectoryInfo(oldPath);
dis.MoveTo(newPath);
//dis.Delete(true);
return "成功!";
}
}现在的问题是,执行超作后都要重新登陆,,不知道有没有更好的办法???

解决方案 »

  1.   

    没错,文件夹重命名就是用
    Directory.Move 
    或者
    DirectoryInfo.MoveTo 
    没有其他办法了
      

  2.   

    重命名只能用moveto了吧执行超作后都要重新登陆,,??????????什么意思?
      

  3.   

    我是在web项目中用的,更改后我的session就失效了
      

  4.   

    文件夹重命名跟session没有直接关系,你重命名的文件夹是在bin目录中吗?bin目录下的内容一修改session就会丢失。
      

  5.   

    我应该没有修改bin目录下的呀
    private void dtgFileList_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    string oldPath=dtgFileList.DataKeys[(int)e.Item.ItemIndex].ToString();
    string newPath=labCurrentDir.Text+"/"+((System.Web.UI.WebControls.TextBox)e.Item.FindControl("txtFileName")).Text;
    labErrInfo.Text=fileManager.renameDir(oldPath,newPath);
    //重新绑定
    fileManager.StrPath=labCurrentDir.Text;
    dtgFileList.DataSource=fileManager.getAllList().DefaultView;
    dtgFileList.DataBind();

    }
      

  6.   

    我也是遇到这样的问题,该的也不是bin里的目录.但session真的不知道怎么就丢失了!
      

  7.   

    调用Dos命令来实现更简单,
    RENAME [drive:][path]filename1 filename2.
    REN [drive:][path]filename1 filename2.
    调用方法可以参考,
    http://blog.csdn.net/zhzuo/archive/2004/03/21/22024.aspx