Mega Code Archive

 
Categories / C# / File Stream
 

Implements the same behaviour as the touch utility on Unix

#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>     ///  Implements the same behaviour as the "touch" utility on Unix. It creates     ///  a new file with size 0 or, if the file exists already, it is opened and     ///  closed without modifying it, but updating the file date and time.     /// </summary>     /// <param name="file"> File to touch</param>     /// <exception cref="IOException">If an I/O problem occurs</exception>         /// ---------------------------------------------------------------     public static void Touch(FileInfo file)      {       if (file.Exists)       {                 FileStream fs = file.OpenRead();         fs.Close();                 file.LastAccessTime = DateTime.Now;         file.Refresh();       }       else       {         FileStream fs = file.OpenWrite();                 fs.WriteByte(0);         fs.Close();                 file.Refresh();       }     }     } }