【发布时间】:2014-04-25 20:16:17
【问题描述】:
我正在尝试在我拥有完全访问权限的两个 UNC 路径之间复制文件。每个 UNC 的根是不同的物理驱动器。我可以使用文件资源管理器毫无问题地复制文件。
string file1 = @"\\node\disk1\dir\file.jpg";
string file2 = @"\\node\disk2\dir\file.jpg";
File.Copy(file1,file2);
以上失败,DirectoryNotFoundException。
但是 - 这工作正常,但速度太慢而无法使用,并表明这不是权限问题。
Image img = Image.FromFile(file1);
img.Save(file2);
如果文件位于同一物理设备 \node\disk1 上,则 File.Copy 工作正常。
【问题讨论】:
-
第二种解决方案也会导致图像质量下降,因为图像将在保存时重新编码。
-
你试过在
Copy之前使用Directory.CreateDirectory(Path.GetDirectoryName(file2))吗? -
\\\那个\是不是太多了?您已经在字符串之前有一个@,因此您不需要进行额外的转义。 (arg,谈到转义我如何正确格式化我的评论以在代码标签中显示 \ 和 @?:D) -
这是一个\太多,但预览中的文本格式不正确,所以我为这篇文章转义了它。我会再次删除它!
-
如果我在目标上执行 Directory.CreateDirectory,则 DirectoryInfo.Exists 返回 true。但是我仍然得到例外。找不到路径“\\node\disk2\dir\file.jpg”的一部分