Beispiel #1
0
        private void SearchMode1_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            FolderSorts SortTypes = FolderSorts.Name;

            switch (SearchMode1.SelectedIndex)
            {
            case 0:
                SortTypes = FolderSorts.Name;
                break;

            case 1:
                SortTypes = FolderSorts.Creation;
                break;

            case 2:
                SortTypes = FolderSorts.LastWrite;
                break;

            case 3:
                SortTypes = FolderSorts.Size;
                break;

            case 4:
                SortTypes = FolderSorts.Pages;
                break;

            case 5:
                SortTypes = FolderSorts.SizePerPage;
                break;
            }
            SetFolderSort(SortTypes);
            new TaskFactory().StartNew(() => LoadHitomi(path));
        }
Beispiel #2
0
        private void SetFolderSort(FolderSorts sorts)
        {
            switch (sorts)
            {
            case FolderSorts.Name:
                FolderSort = (string[] arr) =>
                {
                    return(arr.ESort().ToArray());
                };
                break;

            case FolderSorts.Creation:
                FolderSort = (string[] arr) =>
                {
                    var arr2 = arr.Select(f => new FileInfo(f)).ToArray();
                    Array.Sort(arr2, delegate(FileInfo x, FileInfo y) { return(DateTime.Compare(x.CreationTime, y.CreationTime)); });
                    return(arr2.Select(f => f.FullName).ToArray());
                };
                break;

            case FolderSorts.LastWrite:
                FolderSort = (string[] arr) =>
                {
                    var arr2 = arr.Select(f => new FileInfo(f)).ToArray();
                    Array.Sort(arr2, delegate(FileInfo x, FileInfo y) { return(DateTime.Compare(x.LastWriteTime, y.LastWriteTime)); });
                    return(arr2.Select(f => f.FullName).ToArray());
                };
                break;

            case FolderSorts.Size:
                FolderSort = (string[] arr) =>
                {
                    var arr2 = arr.Select(f => new DirectoryInfo(f)).ToArray();
                    Array.Sort(arr2, delegate(DirectoryInfo x, DirectoryInfo y)
                    {
                        long xlen = x.EnumerateFiles().Sum(f => f.Length);
                        long ylen = y.EnumerateFiles().Sum(f => f.Length);
                        if (xlen == ylen)
                        {
                            return(0);
                        }
                        if (xlen > ylen)
                        {
                            return(1);
                        }
                        if (xlen < ylen)
                        {
                            return(-1);
                        }
                        return(0);
                    });
                    return(arr2.Select(f => f.FullName).ToArray());
                };
                break;

            case FolderSorts.Pages:
                FolderSort = (string[] arr) =>
                {
                    var arr2 = arr.ToArray();
                    Array.Sort(arr2, delegate(string x, string y)
                    {
                        long xlen = Directory.GetFiles(x).Length;
                        long ylen = Directory.GetFiles(y).Length;
                        if (xlen == ylen)
                        {
                            return(0);
                        }
                        if (xlen > ylen)
                        {
                            return(1);
                        }
                        if (xlen < ylen)
                        {
                            return(-1);
                        }
                        return(0);
                    });
                    return(arr2.ToArray());
                };
                break;

            case FolderSorts.SizePerPage:
                FolderSort = (string[] arr) =>
                {
                    var arr2 = arr.Select(f => new DirectoryInfo(f)).ToArray();
                    Array.Sort(arr2, delegate(DirectoryInfo x, DirectoryInfo y)
                    {
                        long xlen = x.EnumerateFiles().Sum(f => f.Length) / x.GetFiles().Length;
                        long ylen = y.EnumerateFiles().Sum(f => f.Length) / y.GetFiles().Length;
                        if (xlen == ylen)
                        {
                            return(0);
                        }
                        if (xlen > ylen)
                        {
                            return(1);
                        }
                        if (xlen < ylen)
                        {
                            return(-1);
                        }
                        return(0);
                    });
                    return(arr2.Select(f => f.FullName).ToArray());
                };
                break;
            }
        }