1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Text;
- namespace Dfs.WayneChina.FairbanksRTData.Support
- {
- public class FileNameSuffixComparer : IComparer<string>
- {
- #region Logger
- NLog.Logger logger = NLog.LogManager.LoadConfiguration("NLog.config").GetLogger("Fairbanks");
- #endregion
- public int Compare(string x1, string y1)
- {
- var x = Path.GetFileNameWithoutExtension(x1);
- var y = Path.GetFileNameWithoutExtension(y1);
- logger.Debug(string.Format("\tComparing {0} and {1}", x, y));
- if (!x.Contains('[') || !y.Contains('['))
- {
- if (x.Length > y.Length)
- {
- logger.Debug("\treturn 1");
- return 1;
- }
- if (x.Length < y.Length)
- {
- logger.Debug("\treturn -1");
- return -1;
- }
- logger.Debug("\treturn 0");
- return 0;
- }
- int xNumber = GetSuffixNumber(x);
- int yNumber = GetSuffixNumber(y);
- if (xNumber > yNumber)
- return 1;
- if (xNumber < yNumber)
- return -1;
- return 0;
- }
- private int GetSuffixNumber(string x)
- {
- int xStartIndex = x.IndexOf('[');
- int xEndIndex = x.IndexOf(']');
- int xNumber = Convert.ToInt32(x.Substring(xStartIndex + 1, xEndIndex - xStartIndex - 1));
- return xNumber;
- }
- }
- }
|