/// <summary>
 /// Z-A comparer
 /// </summary>
 /// <returns></returns>
 public static LogFileComparer GetInstance()
 {
     if (_logFileComparer == null)
     {
         _logFileComparer = new LogFileComparer();
     }
     return(_logFileComparer);
 }
        private void FetchLogFiles()
        {
            var files = new List <string>();

            if (Directory.Exists(_logger.LogDir))
            {
                foreach (string file in Directory.GetFiles(_logger.LogDir, "log*.txt", SearchOption.TopDirectoryOnly))
                {
                    files.Add(Path.GetFileName(file));
                }
            }

            files.Sort(LogFileComparer.GetInstance());

            bool refresh = cboLog.Items.Count != files.Count;

            if (!refresh)
            {
                for (int i = 0; i != files.Count; i++)
                {
                    if (cboLog.Items[i] as string != files[i])
                    {
                        refresh = true;
                        break;
                    }
                }
            }

            if (refresh)
            {
                cboLog.SelectedIndexChanged -= cboLog_SelectedIndexChanged;

                string selectedItem  = cboLog.SelectedItem as string;
                int    selectedIndex = cboLog.SelectedIndex;

                cboLog.Items.Clear();
                cboLog.Items.AddRange(files.ToArray());

                if (selectedItem != null && files.Contains(selectedItem) && cboLog.Items.Contains(selectedItem))
                {
                    cboLog.SelectedItem = selectedItem;
                }
                else if (selectedIndex != -1 && selectedIndex < files.Count)
                {
                    cboLog.SelectedIndex = selectedIndex;
                }
                else if (files.Count != 0)
                {
                    cboLog.SelectedIndex = 0;
                }

                btnClear.Enabled = cboLog.Items.Count != 0;

                cboLog.SelectedIndexChanged += cboLog_SelectedIndexChanged;
            }
        }