调用 Directory.Move(..., ...) 时拒绝访问路径异常

Posted

技术标签:

【中文标题】调用 Directory.Move(..., ...) 时拒绝访问路径异常【英文标题】:Access to the path is denied exception when calling Directory.Move(..., ...) 【发布时间】:2020-12-01 20:50:55 【问题描述】:
Directory.Move("source","Des")

此代码引发以下异常:

System.UnauthorizedAccessException: Access to the path is denied. ---> System.IO.IOException: Operation not permitted

【问题讨论】:

错误信息“访问路径被拒绝”很清楚。 Yes.It is error message @Samyraj 您需要检查用户权限。 【参考方案1】:

以有权访问目录的用户身份运行应用程序(如管理员或 Windows 服务), 或者,如果您只是想知道应用程序是否运行良好,请授予用户或“每个人”对目录的访问权限。

您可以通过CMD 向用户授予访问权限(以管理员身份运行)

C:\>icacls "D:\test" /grant everyone:(OI)(CI)F /T

根据 MS 文档:

F = 完全控制

CI = Container Inherit - 此标志表示从属容器将继承此 ACE。

OI = Object Inherit - 此标志表示从属文件将继承 ACE。

/T = 递归应用到现有文件和子文件夹。 (OI 和 CI 仅适用于新文件和子文件夹)。

对于完整的文档,您可以运行不带参数的“icacls”,或者在此处和此处查看 Microsoft 文档

检查这个答案以及授予权限: https://***.com/a/8311008/3563665

【讨论】:

以上是关于调用 Directory.Move(..., ...) 时拒绝访问路径异常的主要内容,如果未能解决你的问题,请参考以下文章

Directory.Move不起作用(文件已存在)

Explorer.exe 锁定创建的文件 --> Directory.Move 的访问被拒绝

32.Directory类

32.Directory类

Directory 文件夹操作

使用 c# 在网络中移动目录