C# 使用file.copy()移动zip文件

C# 使用file.copy()移动zip文件,c#,C#,我正在尝试将文件从服务器\\abc\\C$\\temp\\coll.zip移动到另一台服务器 \\def\\c$\\temp 我正在尝试使用File.Copy(源、目标)。 但是我在源路径中得到一个错误,它说:找不到路径的部分。 我不确定源路径有什么问题。看起来在开始时需要两个反斜杠: \\abc\C$\temp\coll.zip \\def\c$\temp 如果使用C,请确保转义“\”字符。必须将反斜杠加倍,或在字符串文字前面加@,如下所示: string source = @"\\abc\

我正在尝试将文件从服务器
\\abc\\C$\\temp\\coll.zip
移动到另一台服务器
\\def\\c$\\temp

我正在尝试使用
File.Copy(源、目标)
。 但是我在源路径中得到一个错误,它说:
找不到路径的部分。


我不确定源路径有什么问题。

看起来在开始时需要两个反斜杠:

  • \\abc\C$\temp\coll.zip
  • \\def\c$\temp
如果使用C,请确保转义“\”字符。必须将反斜杠加倍,或在字符串文字前面加@,如下所示:

string source = @"\\abc\C$\temp\coll.zip";
string destination = @"\\def\c$\temp\coll.zip";
string destDirectory = Path.GetDirectoryName(destination)
if (File.Exists(source) && Directory.Exists(destDirectory)) {
    File.Copy(source, destination);
}
else {
    // Throw error or alert
}
string fileName=@“\\abc\C$\temp\coll.zip”


string fileName=“\\\\abc\\C$\\temp\\coll.zip”

它可能是用于路径的字符串。如果它和你在这里输入的完全一样,我相信你需要两个反斜杠。服务器名称前加“\\”。

我总是使用网络共享进行此类工作,但UNC路径也应该可用

不要忘记,在使用时需要转义字符串。而且,UNC路径大部分时间以双精度开头

例如:

\\MyComputerName\C$\temp\temp.zip

事实上,我在两个字符串之前漏掉了@。源路径和目标路径。
这就是它给出错误的原因。

确保您使用的是有效的UNC路径。UNC路径应以\开头,而不仅仅是。您还应该考虑使用<强> St.I..file。存在(文件名);在尝试复制之前,您可以完全避免异常,这样您的应用程序就可以优雅地处理丢失的文件

希望这有帮助

您可以使用C#@逐字记录,也可以在代码中使用如下检查:

string source = @"\\abc\C$\temp\coll.zip";
string destination = @"\\def\c$\temp\coll.zip";
string destDirectory = Path.GetDirectoryName(destination)
if (File.Exists(source) && Directory.Exists(destDirectory)) {
    File.Copy(source, destination);
}
else {
    // Throw error or alert
}

你能提供一些代码吗?可能您没有逃避反斜杠我强烈怀疑第一个反斜杠应该加倍,例如@“\\abc\C$\…”如果文件在目标位置上不存在,这将无效。您需要使用Directory.Exists(destination)进行验证。