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

时间:2009-04-03 16:45:48

标签: c#

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

我正在尝试使用File.Copy(source,destination)。 但我收到源路径中的错误说:Couldn't find the part of the path.

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

7 个答案:

答案 0 :(得分:5)

如果您使用的是C#,请确保转义“\”字符。您必须将反斜杠加倍或使用@作为字符串文字的前缀,如下所示:

string fileName = @"\\abc\C$\temp\coll.zip";

string fileName = "\\\\abc\\C$\\temp\\coll.zip";

答案 1 :(得分:5)

您可以使用C#@ Verbatim并在代码中使用检查:

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
}

答案 2 :(得分:3)

看起来你在开头需要两个反斜杠:

  • \\ ABC \ C $ \ TEMP \ coll.zip
  • \\ DEF \ C $ \ temp中

答案 3 :(得分:2)

确保使用有效的UNC路径。 UNC路径应该以\开头而不仅仅是。在尝试复制之前,您还应该考虑使用 System.IO.File.Exists(filename); ,这样您就可以完全避免异常,因此您的应用可以优雅地处理丢失的文件。

希望这有帮助

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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

当你使用\时,不要忘记你需要逃避你的字符串。此外,UNC路径大部分时间都以双倍开头。

示例:

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

答案 6 :(得分:0)

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