【发布时间】:2019-11-27 12:18:40
【问题描述】:
以下代码在文件位于本地时有效。
var tmp = @"c:\dir\tmp.txt";
var target = @"c:\dir\target.txt";
var backup = @"c:\dir\backup10.txt";
File.Replace(tmp, target, backup);
但是,如果文件位于共享驱动器上,则会出现“拒绝访问路径”的异常。
// m:\Shared is mapped to a shared folder. And it has permissions on the folder.
var tmp = @"m:\Shared\tmp.txt";
var target = @"m:\Shared\target.txt";
var backup = @"m:\Shared\backup10.txt";
File.Replace(tmp, target, backup); // Error!
File.Replace 文档没有提到共享目录?
【问题讨论】:
-
嗯,你怎么把之前的问题删了?无论如何,我想知道是不是因为它是一个映射的网络驱动器,并且因为
File.Replace维护了安全属性等,也许这在网络驱动器上是不允许的? -
如果将
ignoreMetadataErrors: true传递给Replace()方法会发生什么? -
@PeterDuniho,传参后也不例外
-
出于好奇,您能否在网络路径 m:\Shared 上使用 Windows 资源管理器执行相同的操作?
-
@MattU/@MickyD,这个问题已经被peter的cmets解决了。
标签: c#