我正在尝试将文件从服务器\\abc\\C$\\temp\\coll.zip
移动到另一台服务器
\\def\\c$\\temp
。
我正在尝试使用File.Copy(source,destination)
。
但我收到源路径中的错误说:Couldn't find the part of the path.
我不确定源路径有什么问题。
答案 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)
看起来你在开头需要两个反斜杠:
答案 3 :(得分:2)
确保使用有效的UNC路径。 UNC路径应该以\开头而不仅仅是。在尝试复制之前,您还应该考虑使用 System.IO.File.Exists(filename); ,这样您就可以完全避免异常,因此您的应用可以优雅地处理丢失的文件。
希望这有帮助
答案 4 :(得分:0)
它可能是您用于路径的字符串。如果它与你在这里输入完全一样,我相信你需要双反斜杠。服务器名称前面的“\\”。
答案 5 :(得分:0)
我总是使用网络共享进行这类工作,但UNC路径也应该可用。
当你使用\时,不要忘记你需要逃避你的字符串。此外,UNC路径大部分时间都以双倍开头。
示例:
\\MyComputerName\C$\temp\temp.zip
答案 6 :(得分:0)
实际上我在两个字符串之前错过了@。源和目标路径。 这就是它给出错误的原因。