C# 在两个UNC路径C Windows之间复制文件。窗体问题

C# 在两个UNC路径C Windows之间复制文件。窗体问题,c#,unc,C#,Unc,我正在尝试在我有完全访问权的两个UNC路径之间复制文件。每个UNC的根目录都是不同的物理驱动器。我可以使用文件资源管理器毫无问题地复制文件 string file1 = @"\\node\disk1\dir\file.jpg"; string file2 = @"\\node\disk2\dir\file.jpg"; File.Copy(file1,file2); 上述操作失败,出现DirectoryNotFoundException 但是-这很好,但是速度太慢,无法使用,并且表明这不是权限问

我正在尝试在我有完全访问权的两个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可以正常工作。

我猜出现问题的原因是您在第二个参数中指定了File.jpg文件名。它将整个内容视为一个目录

试试这个,检查一下

string file1 = @"\\node\disk1\dir\file.jpg";
string file2 = @"\\node\disk2\dir\"; // Do not specify the file name
File.Copy(file1,file2);

我猜出现问题的原因是您在第二个参数中指定了文件名file.jpg。它将整个内容视为一个目录

试试这个,检查一下

string file1 = @"\\node\disk1\dir\file.jpg";
string file2 = @"\\node\disk2\dir\"; // Do not specify the file name
File.Copy(file1,file2);

第二种解决方案还将导致图像质量下降,因为图像将在保存时重新编码。您是否尝试在复制之前使用Directory.CreateDirectoryPath.GetDirectoryNamefile2?\\\n这不是太多了吗?字符串前面已经有一个@,因此不需要进行额外的转义。arg,说到转义,如何正确格式化注释以在代码标记中显示\和@:DIt太多,但预览中的文本格式不正确,因此我将其转义以用于此发布。我会再次移除它!如果在目标上执行Directory.CreateDirectory,则DirectoryInfo.Exists返回true。但是我还是得到了例外。找不到路径“\\node\disk2\dir\file.jpg”的一部分。第二种解决方案还会导致图像质量下降,因为图像将在保存时重新编码。您是否尝试在复制之前使用Directory.CreateDirectoryPath.GetDirectoryNamefile2?\\\n这不是太多了吗?字符串前面已经有一个@,因此不需要进行额外的转义。arg,说到转义,如何正确格式化注释以在代码标记中显示\和@:DIt太多,但预览中的文本格式不正确,因此我将其转义以用于此发布。我会再次移除它!如果在目标上执行Directory.CreateDirectory,则DirectoryInfo.Exists返回true。但是我还是得到了例外。找不到路径“\\node\disk2\dir\file.jpg”的一部分。否,op posted是文件的正确语法。复制指定源文件和目标文件的完整路径以及目标文件的名称。这不能是目录或现有文件。从“否”开始,op posted是File.Copy的正确语法。您可以指定源文件和目标文件的完整路径以及目标文件的名称。这不能是目录或现有文件。从…起