[英]C# File.Copy from remote computer to local
当我尝试将现有文件从远程计算机复制到本地时
File.Copy(
string.Format(@"\\{0}\e$\{1}", computerName, fileName),
string.Format(@"{0}\{1}\{2}", localPath, computerName, fileName),
true);
我得到 Exception Could not find part of the path "\\computername\e$\filename"
。 我检查了路径,它是正确的。
我认为这不是权限问题,因为我可以使用Directory.GetFiles
访问文件,并且可以使用FileInfo
获取文件大小或上次写入日期等信息,此外,当我从 cmd 使用代码中相同的路径执行 xcopy 命令时他成功地复制了文件。
谁能帮助我了解我做错了什么或其他复制文件的方法?
使用普通的 File.Copy 不能从远程位置复制或复制到远程位置,因为文件是保存在本地 HDD 上还是可以通过网络访问是不同的。 其他社区成员已经制定了一些解决方案。 最简单的可能是这样的:
此线程中提供了另一种解决方案:
你需要找出最适合你的。 重要的是要提到,如果您跳过模拟,您的程序可能无法从任何地方和所有人运行。 这可以防止用户无故障工作。
我发现File.Copy
不会创建给定的目标文件夹,如果它不存在,不像xcopy
命令。 这让我很困惑,因为我认为如果 cmd 命令创建 dir 也Copy
方法可以管理这种情况。 此外,异常消息指定源路径错误,而不是目标路径。
所以要解决这个问题:
localPath = Path.Combine(localPath, computerName);
if (!Directory.Exists(localPath))
{
Directory.CreateDirectory(localPath);
}
File.Copy(
string.Format(@"\\{0}\e$\{1}", computerName, fileName),
Path.Combine(localPath, fileName),
true);
我为我不太好的英语和分心道歉。
谢谢您的帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.