/// <summary>
 /// Gets the information about a file.
 /// </summary>
 /// <param name="fileName">Name of the file.</param>
 /// <param name="fileHandle">The file handle.</param>
 /// <returns>The file characteristics, if the file information was retrieved successfully, otherwise null.</returns>
 public override FileCharacteristics GetFileCharacteristics(string fileName, IntPtr fileHandle)
 {
     var fileInfo = new FileInfo(fileName);
     if (fileInfo.Exists)
     {
         return new FileCharacteristics(fileInfo.GetCreationTimeUtc(), fileInfo.GetLastWriteTimeUtc(), fileInfo.Length);
     }
     else
         return null;
 }
 /// <summary>
 /// Gets the information about a file.
 /// </summary>
 /// <param name="fileName">Name of the file.</param>
 /// <param name="fileStream">The file stream.</param>
 /// <returns>The file characteristics, if the file information was retrieved successfully, otherwise null.</returns>
 public override FileCharacteristics GetFileCharacteristics(string fileName, FileStream fileStream)
 {
     if (!string.IsNullOrEmpty(fileName))
     {
         var fileInfo = new FileInfo(fileName);
         if (fileInfo.Exists)
         {
             return new FileCharacteristics(fileInfo.GetCreationTimeUtc(), fileInfo.GetLastWriteTimeUtc(), fileInfo.Length);
         }
     }
     return null;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="SingleProcessFileAppender" /> class.
 /// </summary>
 /// <param name="fileName">Name of the file.</param>
 /// <param name="parameters">The parameters.</param>
 public SingleProcessFileAppender(string fileName, ICreateFileParameters parameters) : base(fileName, parameters)
 {
     if (CaptureLastWriteTime)
     {
         var fileInfo = new FileInfo(fileName);
         if (fileInfo.Exists)
         {
             FileTouched(fileInfo.GetLastWriteTimeUtc());
         }
         else
         {
             FileTouched();
         }
     }
     this.file = CreateFileStream(false);
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="CountingSingleProcessFileAppender" /> class.
        /// </summary>
        /// <param name="fileName">Name of the file.</param>
        /// <param name="parameters">The parameters.</param>
        public CountingSingleProcessFileAppender(string fileName, ICreateFileParameters parameters)
            : base(fileName, parameters)
        {
            var fileInfo = new FileInfo(fileName);
            if (fileInfo.Exists)
            {
                if (CaptureLastWriteTime)
                {
                    FileTouched(fileInfo.GetLastWriteTimeUtc());
                }
                this.currentFileLength = fileInfo.Length;
            }
            else
            {
                FileTouched();
                this.currentFileLength = 0;
            }

            this.file = this.CreateFileStream(false);
        }
Beispiel #5
0
        public DateTime? GetFileLastWriteTimeUtc(string filePath, bool fallback)
        {
            var appender = GetAppender(filePath);
            DateTime? result = null;
            if (appender != null)
            {
                try
                {
                    result = appender.GetFileLastWriteTimeUtc();
                }
                catch (Exception ex)
                {
                    InternalLogger.Error(ex, "Failed to get last write time for file '{0}'.", appender.FileName);
                    InvalidateAppender(appender.FileName);
                    throw;
                }
            }
            if (result == null && fallback)
            {
                var fileInfo = new FileInfo(filePath);
                if (fileInfo.Exists)
                {
                    return fileInfo.GetLastWriteTimeUtc();
                }
            }

            return result;
        }
Beispiel #6
0
        public DateTime? GetFileLastWriteTimeUtc(string filePath, bool fallback)
        {
            var appender = GetAppender(filePath);
            DateTime? result = null;
            if (appender != null)
                result = appender.GetFileLastWriteTimeUtc();
            if (result == null && fallback)
            {
                var fileInfo = new FileInfo(filePath);
                if (fileInfo.Exists)
                {
                    return fileInfo.GetLastWriteTimeUtc();
                }
            }

            return result;
        }
 /// <summary>
 /// Gets the last time the file associated with the appeander is written. The time returned is in Coordinated 
 /// Universal Time [UTC] standard.
 /// </summary>
 /// <returns>The time the file was last written to.</returns>
 public override DateTime? GetFileLastWriteTimeUtc()
 {
     FileInfo fileInfo = new FileInfo(FileName);
     if (fileInfo.Exists)
     {
         return fileInfo.GetLastWriteTimeUtc();
     }
     return null;
 }