1

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

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

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

  1. 该文件夹的权限
  2. 该文件夹中的某个子文件夹或某个文件处于打开状态。

尝试检查:

  1. 右键单击文件夹-> 属性-> 安全性:如果这是检查权限的正确方法,则文件夹允许所有操作(读取、写入......)
  2. 没有文件,没有打开该文件夹的子文件夹。

为什么?我仍然不明白为什么有时我可以重命名文件夹,但有时却不能。

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

更新:

看看我上面的代码:我想用在 Textbox 中输入的新名称重命名 a 文件夹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

帮助!

4

2 回答 2

2

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

编辑: 试试这个..在你的应用程序中添加引用Microsoft.VisualBasic。然后使用

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

希望能帮助到你 :)

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

于 2013-10-26T09:29:36.780 回答
0

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

例如,请参阅这篇文章:如何在 treeview asp.net C# 中获取客户端文件系统目录

于 2013-10-26T09:50:19.117 回答