QuickImage – Rev 1
?pathlinks?
using QuickImage.Database;
using Shipwreck.Phash;
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace QuickImage.ImageListViewSorters
{
public class DateImageListViewSorter : IComparer, IComparer<ListViewItem>
{
private readonly SortOrder _sortOrder;
private readonly DateImageListViewSorterType _dateImageListViewSorterType;
public DateImageListViewSorter()
{
_sortOrder = SortOrder.Descending;
}
public DateImageListViewSorter(SortOrder sortOrder) : this()
{
_sortOrder = sortOrder;
}
public DateImageListViewSorter(SortOrder sortOrder, DateImageListViewSorterType dateImageListViewSorterType) : this(sortOrder)
{
_dateImageListViewSorterType = dateImageListViewSorterType;
}
public int Compare(ListViewItem x, ListViewItem y)
{
switch (_sortOrder)
{
case SortOrder.Ascending:
switch (_dateImageListViewSorterType)
{
case DateImageListViewSorterType.Creation:
return new FileInfo(x.Name).CreationTime.CompareTo(new FileInfo(y.Name).CreationTime);
case DateImageListViewSorterType.Access:
return new FileInfo(x.Name).LastAccessTime.CompareTo(new FileInfo(y.Name).LastAccessTime);
case DateImageListViewSorterType.Modification:
return new FileInfo(x.Name).LastWriteTime.CompareTo(new FileInfo(y.Name).LastWriteTime);
}
break;
case SortOrder.Descending:
switch (_dateImageListViewSorterType)
{
case DateImageListViewSorterType.Creation:
return new FileInfo(y.Name).CreationTime.CompareTo(new FileInfo(x.Name).CreationTime);
case DateImageListViewSorterType.Access:
return new FileInfo(y.Name).LastAccessTime.CompareTo(new FileInfo(x.Name).LastAccessTime);
case DateImageListViewSorterType.Modification:
return new FileInfo(y.Name).LastWriteTime.CompareTo(new FileInfo(x.Name).LastWriteTime);
}
break;
}
return 0;
}
public int Compare(object x, object y)
{
return Compare(x as ListViewItem, y as ListViewItem);
}
}
}
Generated by GNU Enscript 1.6.5.90.