[英]Access is Denied When Renaming Folder
我不知道这是否是问这个问题的正确地方,但无论如何我都会问这个问题。
当我尝试重命名我的一个文件夹时,我经常遇到问题; 它说访问被拒绝。 我对我的计算机拥有完全的管理权限。 仅当我尝试通过命令提示符或批处理文件执行此操作时才会出现此问题。 我可以手动重命名文件夹,没有任何问题。 但我需要能够使用ren
命令重命名它。 这是一个令人恼火的问题,我听说其他人也有同样的问题。 他们通常通过重新获得文件夹的所有权并重新启动计算机来修复它。 这对我有用,但我讨厌每次都这样做。 有没有永久的解决方案可以阻止这个问题? 此外,当出现此问题时,它会发生在所有文件夹中; 我无法使用ren
命令重命名它们中的任何一个。
答案很简单:
Windows 不允许删除或重命名目录/文件夹
换句话说,只要任何应用程序正在使用目录本身或该目录或其子目录中的任何文件或子目录,Windows 就拒绝重命名或删除该目录。
在 Unix/Linux 上,可以删除或重命名正在被 1 个或多个正在运行的进程使用的目录。 正在运行的 *nix 进程必须处理特殊用例,即一毫秒前刚刚成功访问的目录或文件突然不再存在。
在运行此命令之前,您必须具有执行此操作的权限,因为从命令行覆盖或修改文件需要管理员权限。 完成后,输入以下内容:
ren (path name) (modified name, no quotation marks)
我通过禁用快速访问解决了这个问题:
见截图:
[
1 复制文件夹路径。 为此,按住 shift 并右键单击,您将看到“复制为路径选项”
2 以管理员身份打开cmd。 为此,请按window + X ,然后按A 。
3 在 cmd 中,输入“ cd C: 然后粘贴路径”,例如:
cd C:\\用户\\abc\\桌面\\音乐
在按 Enter 键之前,引用姓氏; 例如:
cd C:\\用户\\abc\\桌面\\“音乐”
4 接下来,输入: ren *.present extension *.new extension ; 比如从mp3到exe:
人 *.mp3 *.exe
如果不存在扩展名,则例如:
仁*. *。可执行程序
这应该可以工作并消除拒绝访问的麻烦。
我通过在目录上为运行批处理的用户提供完整权限来解决这个问题。 似乎来自组成员的权利是不够的:用户是本地组管理员的成员,我收到了“拒绝访问”。 在具有完全权限的目录安全性中添加用户帐户后,它会完成工作。
我解决这个问题的方法是运行实用程序Handle ,由 Windows Sysinternals 的 Mark Russinovich 编写。 你可以在 这里找到它。
此实用程序将显示系统上所有打开的句柄以及正在使用它们的进程。 其中之一可能有您尝试重命名的文件夹的路径。
我通常将 handle.exe 的输出重定向到一个文件。
handle >handles.txt
然后我在文本编辑器中查看 handles.txt 并搜索我试图重命名的文件夹的名称。 它将出现在属于进程的句柄部分,该进程保持该文件夹的句柄处于打开状态,从而防止其被重命名。 它显示了违规进程的 pid,您可以决定如何处理,以防您需要终止它。
例如,尝试重命名myfolder
我忘了我已经启动了使用 pm2(进程监视器)运行的service
Handle.exe 的输出包括以下内容:
node.exe pid: 12752 DISCO\Stu 40: File (---) C:\Dev\myfolder\service
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.