|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.09.2021, 00:23 | #1 |
Новичок
Джуниор
Регистрация: 28.08.2021
Сообщений: 3
|
Получить список файлов в том же порядке что и в проводнике.
Здравствуйте, мне нужно получить список файлов в папке в том же порядке, в котором они отображаются в проводнике. То есть в самом проводнике можно выбрать сортировку файлов по имени, размеру, дате и т.д. И мне нужно получить такой же порядок файлов.
Для примера стандартный просмотрщик изображений windows при листании изображений показывает их именно в том порядке, в котором они отображаются в проводнике, учитывая выбранную сортировку файлов в папке. Мне нужно реализовать подобный функционал. Я уже попробовал FindFirstFileEx и его флаги, а также посмотрел документацию Qt, но безрезультатно. Надеюсь, кто-нибудь сможет что-нибудь подсказать. |
06.09.2021, 09:36 | #2 |
Участник клуба
Регистрация: 03.06.2009
Сообщений: 1,826
|
1. при помощи FindFirstFile получить вообще список файлов - массив имён name[i]. это у вас будет какой-то первый цикл.
2. для каждого файла в этом же цикле вы формируете массив данных (размер size[i], время создания time[i]...) 3. второй цикл - сортировка по выбранному параметру, скажем, по размеру size[i]. он вам выстроит все size от наименьшего до наибольшего. а дальше вы по индексам выводите имена - они как раз будут в нужном вам порядке. -------------- тут муторная работа по сортировке....
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
|
06.09.2021, 21:00 | #3 |
Участник клуба
Регистрация: 03.06.2009
Сообщений: 1,826
|
вот, нашёл свою разработку.
Код:
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
|
07.09.2021, 14:02 | #4 |
Новичок
Джуниор
Регистрация: 28.08.2021
Сообщений: 3
|
Да, но собственно как узнать, какой сейчас установлен тип сортировки файлов в данной директории в самом проводнике? Ведь в проводнике для директории можно выбрать любую сортировку из предложенных (а их там не мало, когда заглядываешь в раздел «Подробнее..»). Как моему приложению узнать, какая сортировка сейчас выбрана?
|
08.09.2021, 08:36 | #5 |
Участник клуба
Регистрация: 03.06.2009
Сообщений: 1,826
|
скорее всего, где-то в реестре прописан параметр, который меняется в зависимости от вашего проводника. надо искать в литературе для начала...
--------- если поиск ничего не даст. то я бы заморочился и сделал снимок реестра. первый - для вида ТАБЛИЦА, второй - для вида ПЛИТКА (ну, или какие там ещё есть виды отображения файлов). и уж посимвольно сравнил бы программным путём... авось, даст какие-то изменения - вот там и зарыта собака.... ------------ есть смутные подозрения, что раз отображение скрытых файлов в ключе HKEY_CURRENT_USER\Software\Microsof t\Windows\CurrentVersion\Explorer\A dvanced] ;Показывать скрытые файлы и папки "Hidden"=dword:00000001 то и вид папки тоже может быть где-то в этой ветви реестра. покопайтесь. ничего страшного не произойдёт. в винду переустанавливать, если что, мы все уже умеем на раз-два... ------------- ещё с просторов Инета: Windows Registry Editor Version 5.00 ; Сброс вида папок [-HKEY_CURRENT_USER\Software\Microsof t\Windows\ShellNoRoam\BagMRU] [-HKEY_CURRENT_USER\Software\Microsof t\Windows\ShellNoRoam\Bags] [-HKEY_CURRENT_USER\Software\Microsof t\Windows\Shell\BagMRU] [-HKEY_CURRENT_USER\Software\Microsof t\Windows\Shell\Bags] [-HKEY_CURRENT_USER\Software\Classes\ Local Settings\Software\Microsoft\Windows \Shell\BagMRU] [-HKEY_CURRENT_USER\Software\Classes\ Local Settings\Software\Microsoft\Windows \Shell\Bags] ; Отключение автоматического присвоения шаблонов для папок [HKEY_CURRENT_USER\Software\Classes\ Local Settings\Software\Microsoft\Windows \Shell\Bags\AllFolders\Shell] "FolderType"="NotSpecified" ; Увеличение кэша памяти для вида папок [HKEY_CURRENT_USER\Software\Classes\ Local Settings\Software\Microsoft\Windows \Shell] "BagMRU Size"=dword:00004e20 ; Запоминание параметров отображения каждой папки [HKEY_CURRENT_USER\Software\Microsof t\Windows\CurrentVersion\Policies\E xplorer] "NoSaveSettings"=dword:00000000
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
Последний раз редактировалось NetSpace; 08.09.2021 в 08:44. |
09.09.2021, 12:06 | #6 |
Новичок
Джуниор
Регистрация: 28.08.2021
Сообщений: 3
|
Идея с разбором реестра интересна, но мне кажется, что должен быть простой способ реализовать мою задачу.
После долгих поисков, наткнулся на метод IFolderView2::GetSortColumns. Если я правильно понял, он как раз должен возвращать тип сортировки в директории. Правда, как заставить его работать я пока что не разобрался. Но даже если я смогу получить текущий тип сортировки, я не думаю, что будет хорошей идеей пытаться самому реализовывать каждый тип сортировки, ведь их там не мало. Я все же надеюсь, что есть простой способ получить уже отсортированный список файлов. Есть надежда, что можно использовать для этого метод IShellFolder::EnumObjects, но это всего лишь предположение, да и как работает этот метод, я тоже пока что не разобрался. Если кто-то сможет подсказать нужный мне метод или привести примеры использования упомянутых выше функций, я буду очень благодарен. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создать иерархический список всех каталогов и файлов, как в проводнике Windows | George87 | Microsoft Office Excel | 6 | 13.07.2017 16:13 |
Получить список файлов с сервера FTP Qt C++ | _PROGRAMM_ | Помощь студентам | 1 | 07.03.2014 16:39 |
Получить список файлов в папке | romanzi | Общие вопросы Delphi | 7 | 21.08.2013 08:19 |
Получить список имен файлов на сайте | syserg | Работа с сетью в Delphi | 8 | 28.03.2010 14:01 |
Получить список файлов и папок. | gusluk | Общие вопросы Delphi | 3 | 10.03.2009 12:49 |