bool HasFileChanged (string source, string dest)
{
if (!File.Exists (dest))
return true;
FileInfo sourceInfo = new FileInfo (source);
FileInfo destinationInfo = new FileInfo (dest);
return !(sourceInfo.Length == destinationInfo.Length &&
File.GetLastWriteTime(source) <= File.GetLastWriteTime (dest));
}