所以我有一个 C# 控制台应用程序,它通过大量文件并使用 WebDAV 映射驱动器将丢失的文件复制到远程位置。
本质上,我没有使用自定义客户端,我使用的是 Windows 内置客户端。
net use j: http://127.69.69.69 /user:testme pass /persistent:yes
一切似乎都很好(我已经增加了 IIS 7.0 服务器上的文件大小限制等),除了偶尔我会从操作系统弹出“延迟写入失败”。
我的问题是我的应用程序没有在客户端的 File.Copy() 方法上保释/抛出异常——我如何检测到这一点?
我想这不是什么大不了的事,但我的一部分想知道为什么没有抛出异常。它似乎移动到下一个文件而没有记录错误。我的脚本检查远程文件大小是否相同,并且可以在下一个周期替换部分文件。
它实际复制的非常简单的代码:
Log("\n copying " + lf.FullName);
try
{
if (!Directory.Exists(Path.Combine(remotePath, localDir.Name)))
Directory.CreateDirectory(Path.Combine(remotePath, localDir.Name));
}
catch (Exception e)
{
Log("Cannot create remote directory " + Path.Combine(remotePath, localDir.Name) + " " + e.Message , "error");
}
try
{
File.Copy(lf.FullName, Path.Combine(new string[] { remotePath, localDir.Name, lf.Name }), true);
}
catch (Exception e)
{
Log("Cannot copy file to " + Path.Combine(new string[] { remotePath, localDir.Name, lf.Name }) + " " + e.Message, "error");
}