我的应用程序会在启动时检查共享网络驱动器上是否有更新版本的文件。如果网络共享上的一个较新,它会将其复制到本地应用程序目录并覆盖旧的。我当前执行此操作的代码如下所示:
FileInfo sourceFile = new FileInfo(source + "\\" + fileName);
if(sourceFile.Exists) {
FileInfo destFile = new FileInfo(destination + "\\" + fileName);
if (destFile.Exists && destFile.LastWriteTime >= sourceFile.LastWriteTime)
{
//Using log4net
log.Info("Current " + fileName + " is newer than the one on the server.");
return false;
}
}
检查日志,似乎有时LastWriteTime
源文件没有被检测为较新的(当它是事件时)。我可能会混淆写入时间和修改时间吗?有人知道如何实现这一目标吗?
编辑(以及下面我的评论的副本):我正在复制的文件主要是我可以控制的 DLL 文件。它们是应用程序“Growl for Windows”的程序集;他们定义自定义显示。我的应用程序的目的是检查网络共享以查看是否有可用的较新版本,并在需要时将其复制到本地。这样,我们可以帮助确保我们所有的客户都使用最新的显示器。
编辑2:
好的,我在加载程序集时胡闹,然后遇到了另一个问题。当它们通过Assembly.ReflectionOnlyLoadFrom
.