Исходник Рандомная сортировка файлов (с#, winforms)

Начинающий
Статус
Оффлайн
Регистрация
9 Ноя 2018
Сообщения
7
Реакции[?]
4
Поинты[?]
0
Приветсвую, выкладываю этот сурс для рандомной сортировки файлов в папке с любым расширением, путем подставления цифр к названию файла.
//могут быть баги:roflanEbalo:
1613842386743.png
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Олдфаг
Статус
Оффлайн
Регистрация
18 Фев 2019
Сообщения
2,826
Реакции[?]
1,853
Поинты[?]
24K
Приветсвую, выкладываю этот сурс для рандомной сортировки файлов в папке с любым расширением, путем подставления цифр к названию файла.
//могут быть баги:roflanEbalo:
Пожалуйста, авторизуйтесь для просмотра ссылки.
Название файла может повториться, причем с достаточно большой вероятностью. Лучше всего сделать так:
C#:
private static ShellFolderView GetShellFolderView(string path)
{
    Shell shell = new ShellClass();
    ShellWindows shellWindows = (ShellWindows)shell.Windows();
    Uri fileUri = new Uri(path);
    foreach (ShellBrowserWindow shellWindow in shellWindows)
    {
        string s = shellWindow.LocationURL;
        Uri windowUri = new Uri(s);
        if (windowUri.AbsolutePath == fileUri.AbsolutePath)
        {
            return (ShellFolderView)shellWindow.Document;
        }
    }
    return null;
}

//В основном событии:
FileInfo file = new FileInfo(path);
var folderView = GetShellFolderView(file.DirectoryName);
 
//Вернет строку вида: "prop:System.ItemDate;", если файлы в папке отсортированы по дате. Если по убыванию,
//то добавляется минус, вот так "prop:-System.ItemDate;". Зная эту информацию, сортируем уже как хотим.
string sortProperty = folderView.SortColumns;
 
Сверху Снизу