123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.IO;
- namespace Wayne.Lib.IO
- {
- internal class SafeFileInfo
- {
- #region Const fields
- public const string TmpFileExtension = "wayneTemp";
- public const string OldFileExtension = "wayneOld";
- #endregion
- #region Fields
- string originalFileName;
- #endregion
- #region Construction
- private SafeFileInfo(string originalFileName)
- {
- this.originalFileName = originalFileName;
- }
- #endregion
- #region Properties
- public string TempFileName
- {
- get
- {
- return originalFileName + "." + TmpFileExtension;
- }
- }
- public bool TempFileExists
- {
- get
- {
- return File.Exists(TempFileName);
- }
- }
- public string OldFileName
- {
- get
- {
- return originalFileName + "." + OldFileExtension;
- }
- }
- public bool OldFileExist
- {
- get
- {
- return File.Exists(OldFileName);
- }
- }
- public string OriginalFileName
- {
- get { return originalFileName; }
- }
- public bool OriginalFileExists
- {
- get { return File.Exists(originalFileName); }
- }
- #endregion
- #region Static methods
- internal static SafeFileInfo FromOriginalFileName(string originalFileNameAndPath)
- {
- return new SafeFileInfo(originalFileNameAndPath);
- }
- internal static SafeFileInfo FromTempFileName(string tempFileName)
- {
- return new SafeFileInfo(Path.GetFileNameWithoutExtension(tempFileName));
- }
- internal static SafeFileInfo FromOldFileName(string originalFileName)
- {
- return new SafeFileInfo(Path.GetFileNameWithoutExtension(originalFileName));
- }
- public static SafeFileInfo[] GetFiles(IFileSupport fileSupport, string folderPath, string pattern)
- {
- List<SafeFileInfo> safeFileList = new List<SafeFileInfo>();
- foreach (string fullFileName in fileSupport.GetFiles(folderPath, pattern))
- {
- SafeFileInfo safeFile = FromOriginalFileName(fullFileName);
- safeFileList.Add(safeFile);
- }
- foreach (string fullFileName in fileSupport.GetFiles(folderPath, pattern + "." + TmpFileExtension))
- {
- SafeFileInfo safeFile = FromTempFileName(fullFileName);
- if (!SafeFileInfoListContains(safeFileList, safeFile))
- safeFileList.Add(safeFile);
- }
- foreach (string fullFileName in fileSupport.GetFiles(folderPath, pattern + "." + OldFileExtension))
- {
- SafeFileInfo safeFile = FromOldFileName(fullFileName);
- if (!SafeFileInfoListContains(safeFileList, safeFile))
- safeFileList.Add(safeFile);
- }
- return safeFileList.ToArray();
- }
- private static bool SafeFileInfoListContains(List<SafeFileInfo> safeFileList, SafeFileInfo safeFile)
- {
- foreach (SafeFileInfo file in safeFileList)
- if (file.originalFileName.Equals(safeFile.originalFileName))
- return true;
- return false;
- }
- #endregion
- }
- }
|