重命名文件夹时拒绝访问
Posted
技术标签:
【中文标题】重命名文件夹时拒绝访问【英文标题】:Access is Denied When Renaming Folder 【发布时间】:2017-05-12 22:18:50 【问题描述】:我不知道这是否是问这个问题的正确地方,但无论如何我都会问它。
当我尝试重命名我的一个文件夹时,我经常遇到问题;它说访问被拒绝。我对我的计算机拥有完全的管理权限。仅当我尝试通过命令提示符或批处理文件执行此操作时才会出现此问题。我可以手动重命名文件夹,没有任何问题。但我需要能够使用ren
命令重命名它。这是一个令人恼火的问题,我听说其他人也有同样的问题。他们通常通过重新获得文件夹的所有权并重新启动计算机来修复它。这对我有用,但我讨厌每次都这样做。有没有我可以做的永久解决方案来阻止这个问题?此外,当发生此问题时,它会发生在所有文件夹中;我无法使用ren
命令重命名它们。
【问题讨论】:
假设没有其他程序或cmd
实例本身访问该文件夹,您可能需要确保cmd
是正确的elevated;另见这篇文章:The Windows Security Model...
如果您拥有适当的权限,则无需修改所有权。因此,问题在于您操作的权限不足。
【参考方案1】:
在您可以运行此命令之前,您必须拥有执行此操作的权限,因为从命令行覆盖或修改文件需要管理员权限。完成后,输入以下内容:
ren (path name) (modified name, no quotation marks)
【讨论】:
谢谢,但我已经拥有管理权限。这一定是windows操作系统的一个小故障。我什至尝试使用 move 命令重命名它,但没有任何效果。我只能手动完成。【参考方案2】:答案很简单:
Windows 不允许删除或重命名目录/文件夹
任何运行进程(应用程序/服务)的当前目录,如命令进程,或 要重命名的目录的任何子目录都是任何正在运行的进程的当前目录,或者 打开文件时使用OF_SHARE_DENY_READ, OF_SHARE_DENY_WRITE, OF_SHARE_EXCLUSIVE 的任何进程在要重命名的目录或其任何子目录中打开任何文件。换言之,只要目录本身或该目录或其子目录中的任何文件或子目录正被任何应用程序使用,Windows 就会拒绝重命名或删除该目录。
在 Unix/Linux 上,当一个或多个正在运行的进程正在使用一个目录时,可以删除或重命名该目录。正在运行的 *nix 进程必须处理特殊用例,即在一毫秒前成功访问的目录或文件突然不再存在。
【讨论】:
非常感谢!终于得到了我的答案。我再次尝试这样做,我意识到我确实打开了该文件夹中的其他内容。 我遇到了同样的问题,但没有打开文件。但是,我让文件资源管理器查看要重命名的文件夹并锁定它。 在这种情况下说“拒绝访问”会让 Windows 感到困惑。更好的错误是“共享冲突”或“目录或文件正在使用中”。【参考方案3】:我通过禁用快速访问解决了这个问题:
查看截图:
[
【讨论】:
或通过转到 windows (10)“Windows 搜索设置”禁用它并将文件夹添加到排除项(可能需要重新启动计算机才能生效(如果需要))。【参考方案4】:1 文件夹的复制路径。为此,按住 shift 并右键单击,您将看到“复制为路径选项”
2 以管理员身份打开 cmd。为此,请按 window + X,然后按 A。
3 在 cmd 中输入“cd C: 然后粘贴路径”,例如:
cd C:\Users\abc\Desktop\music
在您按 Enter 之前,请引用姓氏;例如:
cd C:\Users\abc\Desktop\"音乐"
4 接下来,输入:ren *.present extension *.new extension;比如从mp3到exe:
ren *.mp3 *.exe
如果不存在扩展,则例如:
仁*。 *.exe
这应该可以解决访问被拒绝的问题。
【讨论】:
【参考方案5】:我通过授予运行批处理的用户对目录的完全权限解决了这个问题。似乎来自组成员的权利是不够的:用户是本地组管理员的成员,我收到“拒绝访问”。在目录安全中添加具有完全权限的用户帐户后,它就完成了这项工作。
【讨论】:
【参考方案6】:我解决此问题的方法是运行由 Windows Sysinternals 的 Mark Russinovich 编写的实用程序 Handle。你可以找到它here。
此实用程序将显示系统上所有打开的句柄以及正在使用它们的进程。其中一个可能有您要重命名的文件夹的路径。
我通常将 handle.exe 的输出重定向到一个文件。
handle >handles.txt
然后我在文本编辑器中查看handles.txt 并搜索我试图重命名的文件夹的名称。它将出现在属于保持该文件夹句柄打开的进程的句柄部分中,从而防止它被重命名。它显示了违规进程的 pid,您可以决定如何处理,以防您需要终止它。
例如尝试重命名 myfolder
我忘记了我已经启动了一个使用 pm2(进程监视器)运行的 service
Handle.exe 的输出包括以下内容:
【讨论】:
以上是关于重命名文件夹时拒绝访问的主要内容,如果未能解决你的问题,请参考以下文章
AuthorizeFilter 失败时如何返回 403 而不是重定向访问被拒绝