错误重命名目录时拒绝访问路径

时间:2013-10-25 13:19:48

标签: c# asp.net

我想重命名一个文件夹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 :(得分:0)

路径"D:\\C#Projects\\website\\Lecturer\\giangvien\\New folder"可能不存在。我在想你的意思"D:\C#Projects\website\Lecturer\giangvien\New folder"。我认为@CharmingInferno试图得到的是,当你在字符串前面使用@时,你不需要使用转义字符,因为它接受文本,如下所示

string g = "\\\\server\\share\\file.txt";   // \\server\share\file.txt
string h = @"\\server\share\file.txt";      // \\server\share\file.txt

但是,您要将值放在EditValue字符串数组中,应该更正。

答案 1 :(得分:0)

我刚才有同样的问题。

使用

Directory.Move(srcDirectory, dstDirectory);

有时会导致Access to the path /dstDirectory/ is denied异常,有时却不会。

以下为我解决了

new DirectoryInfo(srcDirectory).MoveTo(dstDirectory);