错误 重命名目录时,对路径的访问被拒绝

本文关键字:路径 访问 拒绝 重命名 错误 | 更新日期: 2023-09-27 18:36:55

我想使用文本框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"

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

帮助!

错误 重命名目录时,对路径的访问被拒绝

路径

"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字符串数组中应该更正。

我刚才遇到了同样的问题。

Directory.Move(srcDirectory, dstDirectory);

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

以下为我解决了。

new DirectoryInfo(srcDirectory).MoveTo(dstDirectory);