有时可以重命名,删除文件夹;有时候不能

时间:2013-10-26 09:26:01

标签: c# asp.net

在我的网站项目中。我需要通过代码重命名或删除一些文件夹。

有时候我可以做所有这些,但有时我不能犯错:Access to the path is denied

尝试在Google上找到解决方案。可能是,有两个原因:

  1. 该文件夹的许可
  2. 某个子文件夹或该文件夹中的某个文件正在打开。
  3. 尝试检查:

    1. 右键单击Folder->属性 - >安全性:如果这是检查权限的正确方法,则文件夹允许每个操作(读取,写入....)
    2. 没有文件,也没有打开该文件夹的子文件夹。
    3. 为什么呢?我仍然不明白为什么有时我可以重命名文件夹,但有时我不能。

      帮助!!我需要你的意见!!!

      更新:

      看看上面的代码: 我想在文本框txtFilenFolderName中使用新名称重命名一个文件夹:

      protected void btnUpdate_Click(object sender, EventArgs e)
      {
         string[] values = EditValue;
         string oldpath = 
             values[0];// = "D:\\C#Projects\\website\\Lecturer\\giangvien\\New folder"
      
         string oldName = values[2]; //= New Folder
      
         string newName = txtFilenFolderName.Text; //= New Folder1
         string newPath = string.Empty;
      
         if (oldName != newName)
         {
            newPath = oldpath.Replace(oldName, newName);
            Directory.Move(oldpath, newPath);
         }
         else
         {
            lblmessage2.Text = "New name must not be the same as the old ";
         }
      

      }

      尝试调试:

      oldpath = "D:\\C#Projects\\website\\Lecturer\\giangvien\\New folder"
       oldName = New Folder
      newName= New Folder1
      newpath = "D:\\C#Projects\\website\\Lecturer\\giangvien\\New folder1"
      

      一切似乎都是正确的,但是当我点击按钮编辑--->重命名--->更新--->发生错误:Access to the path is denied D:\\C#Projects\\website\\Lecturer\\giangvien\\New folder

      帮助!

2 个答案:

答案 0 :(得分:2)

向您登录的用户授予权限(读/写/修改)。 或者您可以“以管理员身份”运行程序。

修改 试试这个..在你的应用程序中添加对Microsoft.VisualBasic的引用。然后使用

Microsoft.VisualBasic.FileIO.FileSystem.RenameDirectory("currentName", "newName");

希望有所帮助:)

P.S。: RenameDirectory验证参数并致电Directory.Move。如果要在服务器中重命名文件夹,可以将根文件夹中的修改访问权限授予IIS用户。但是,如果您打算在客户端计算机中重命名文件夹,则无法重命名任何文件夹(除了一些目录,如temp中的文件夹)。

答案 1 :(得分:0)

通常,网站不能简单地访问客户端本地文件系统。 (这也是一件好事!)

请参阅此帖:How to get client file system directories in treeview asp.net C#