Mega Code Archive

 
Categories / C# / File Stream
 

Tests if the specified file is newer than the reference file

#region License and Copyright /* -------------------------------------------------------------------------  * Dotnet Commons IO  *  *  * This library is free software; you can redistribute it and/or modify it   * under the terms of the GNU Lesser General Public License as published by   * the Free Software Foundation; either version 2.1 of the License, or   * (at your option) any later version.  *  * This library is distributed in the hope that it will be useful, but   * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY   * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License   * for more details.   *  * You should have received a copy of the GNU Lesser General Public License   * along with this library; if not, write to the   *   * Free Software Foundation, Inc.,   * 59 Temple Place,   * Suite 330,   * Boston,   * MA 02111-1307   * USA   *   * -------------------------------------------------------------------------  */ #endregion using System; using System.Collections; using System.Globalization; using System.IO; namespace Dotnet.Commons.IO {      ///     /// <summary>     /// This class provides basic facilities for manipulating files and file paths.     ///      /// <h3>File-related methods</h3>     /// There are methods to      /// <list type="bullet">     ///     <item>copy a file to another file,</item>     ///     <item>compare the content of 2 files,</item>     ///     <item>delete files using the wildcard character,</item>     ///     <item>etc</item>     /// </list>   /// </summary>   ///        public sealed class FileUtils   {         /// ---------------------------------------------------------------         /// <summary> Tests if the specified <i>file</i> is newer than the reference          ///  <i>file</i>.         ///          /// </summary>         /// <param name="newerFile">the <i>file</i> of which the modification date must be compared         /// </param>         /// <param name="referenceFile">the <i>file</i> of which the modification date is used          /// like reference         /// </param>         /// <returns> true if the <i>file</i> exists and has been modified more recently         /// than the reference <i>file</i>.         /// </returns>         /// ---------------------------------------------------------------         public static bool IsNewer(FileInfo newerFile, FileInfo referenceFile)         {             if (referenceFile == null)                 throw new ArgumentNullException("referenceFile");             bool exists = referenceFile.Exists;             if (!referenceFile.Exists)                 exists = Directory.Exists(referenceFile.FullName);             if (!exists)                 throw new System.ArgumentException("The reference file '" + referenceFile + "' doesn't exist");             return IsNewer(newerFile, referenceFile.LastWriteTime);         }         /// ---------------------------------------------------------------         /// <summary>         /// Tests if the specified <i>file</i> is newer than the specified      /// time reference.             /// </summary>         /// <param name="file">the <i>file</i> of which the modification date must be compared.</param>         /// <param name="timeCompare">the time reference</param>         /// <returns>true if the <i>file</i> exists and has been modified after         /// the given time reference.</returns>         /// ---------------------------------------------------------------         public static bool IsNewer(FileInfo file, DateTime timeCompare)         {             if (file == null)                             throw new ArgumentException("No file specified");             bool exists = file.Exists;             if (!file.Exists)                                 exists = Directory.Exists(file.FullName);             if (!exists)                             return false;             return (file.LastWriteTime > timeCompare);         }    } }