File.Copy方法

时间:2011-04-11 14:17:02

标签: c# .net

以下代码是否可以抛出任何异常并且不复制文件?

void Copy2(string from, string to)
{
    lock (_thisLock)
    {
     if (File.Exists(from))
     {
      File.Copy(from, to, true);
      return;
     }
     Logger.Write("File does not exists");
    }
}

客户说应用程序不会崩溃,也不会复制任何文件,也不会写入日志。 记录器的类型为Microsoft.Practices.EnterpriseLibrary.Logging.Logger

3 个答案:

答案 0 :(得分:3)

当然,如果该文件不存在 - (!File.Exists) - 则无法达到File.Copy来电。

Logger.Write不算作例外。

如果您的更新建议日志中没有任何内容,我会仔细检查Logger.Write功能。它是否正确实施?是否在该方法中抛出和处理异常?没有抛出异常,这比File.Copy失败更有可能。

答案 1 :(得分:0)

如果文件不存在且未配置任何记录器附加程序,则可能会出现您描述的情况 - 即没有错误,没有记录

答案 2 :(得分:0)

查看MSDN for File.Copy您可以看到它引发了一些例外情况。让你捕获堆栈上方的异常正确处理异常/错误而不是简单地吞下它