我想使用文本框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#ProjectswebsiteLecturergiangvienNew folder"
. 我认为@CharmingInferno试图得到的是,当您在字符串前面使用 @
时,您不需要使用转义字符,因为它采用的文本
string g = "\\server\share\file.txt"; // \serversharefile.txt
string h = @"\serversharefile.txt"; // \serversharefile.txt
但是,您将值放在EditValue
字符串数组中应该更正。
我刚才遇到了同样的问题。
用
Directory.Move(srcDirectory, dstDirectory);
有时导致Access to the path /dstDirectory/ is denied
异常,有时不会。
以下为我解决了。
new DirectoryInfo(srcDirectory).MoveTo(dstDirectory);