System.IO有没有办法检测延迟写入失败(来自WebDAV)?

时间:2012-07-11 00:54:08

标签: c# file-io io webdav mapped-drive

所以我有一个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");
}

0 个答案:

没有答案