2008-10-12 290 views
3

我正在尝试使用File.Move将文件从一个UNC位置移动到另一个位置。如果目标的UNC路径碰巧是本地计算机,则会发生此错误(错误:拒绝访问路径)。示例File.Move(@"\\someServer\path\file.txt", @"\\blah2\somewhere\file.txt")。这假设有一个名为\\ someServer的网络共享,我的本地计算机名称是blah2。将\\ blah2更改为C:\并且一切都很好。File.Move无法正常工作UNC路径

回答

1

不应该在您的unc路径中的服务器名称以两个斜线开始?
例如@“\\ someServer \ path \ file.txt”

+0

鉴于我不得不写三个斜杠两个出现在我的帖子,我想现在你有同样的问题,那你确实有正确的路径。对不起,我不能更有帮助:-) – hamishmcn 2008-10-12 08:24:15

4

也许这是一个错字,但不应该是@"\\blah2\somewhere\file.txt",即有两个反斜杠?

0

我似乎无法重现该错误。也许它与权限有关?你可以使用UNC地址移动到本地机器上的任何地方,还是全都抛出异常?

1

对于Windows文件共享,写访问权限需要在另一个位置(ACL除外)指定权限 - 在共享权限中。如果您正在使用像C $这样的管理共享,则写入访问权限已启用,但如果您使用的是明确设置的共享,请确保在“共享权限”下启用“更改”选项。

注意,您可以经常通过检查下计算机管理安全事件日志解决权限错误 - >事件查看器,有可能是它是如何失败的更多详细信息。在管理工具 - >本地安全策略 - >本地策略 - >审核策略下启用审核登录失败的功能也可能在事件日志中提供更多详细信息。

0

我有同样的问题,该文件正在被另一个程序(Windows资源管理器)被锁定,在我来说,我使用解锁软件解锁文件。这发生在我使用UNC路径访问文件时,File.Move方法通过本地路径很好地访问它。

似乎疏远,我认为我没有得到这样的行为手动重命名通过UNC /本地路径的文件时。