Форум программистов, компьютерный форум CyberForum.ru

Создание виртуальной файловой системы для explorer - C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.74
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16946 / 5351 / 329
Регистрация: 30.03.2009
Сообщений: 14,389
Записей в блоге: 26
01.09.2010, 22:51     Создание виртуальной файловой системы для explorer #1
В линуксовом (юниксовом) mc есть такое понятие "виртуальная файловая система" (ВФС). Когда в программе отображается файл, к примеру архив rar, то можно enter'ом в него зайти и увидеть внутренности архива. Для этого и используется эта ВФС. Через какие-то плагины реализуется, что для файлов с таким-то расширением нужно запустить такой-то парсер, который сгенерит образ файловой системы и отдаст его в mc, который в дальнейшем будет свободно ходить по этому образу как по настоящим файлам.

Хочется сделать то же самое для windows explorer (проводник). Это нужно не просто для того, чтобы по спискам файлов ходить, но чтобы в списке отображались дефолтные иконки, была возможность превью, возможность сортировки и т.п.

Есть ли техническая возможность сделать сие?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9384 / 5434 / 916
Регистрация: 25.07.2009
Сообщений: 10,428
02.09.2010, 09:20     Создание виртуальной файловой системы для explorer #2
Evg, ну с zip архивами он себя примерно так и ведёт - открывает, как обычную папку, показывает файлы с иконками, если открыть к примеру файл с картинкой, эксплорер его по-тихому из архива распакует и покажет... Значит, в принципе как-то делается. Вопрос только в том, зарыта ли эта фишка глубоко в эксплорер, или в виде плагина подтягивается... Но при этом тот же WinRAR может зарегистрировать на себя zip архивы и они станут в раре открываться так же, как родные раровские...
odip
Эксперт C++
 Аватар для odip
7226 / 3288 / 59
Регистрация: 17.06.2009
Сообщений: 14,165
02.09.2010, 09:32     Создание виртуальной файловой системы для explorer #3
Поддержка zip-архивов встроена самим Microsoft в Windows XP
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16946 / 5351 / 329
Регистрация: 30.03.2009
Сообщений: 14,389
Записей в блоге: 26
02.09.2010, 15:07  [ТС]     Создание виртуальной файловой системы для explorer #4
Цитата Сообщение от odip Посмотреть сообщение
Поддержка zip-архивов встроена самим Microsoft в Windows XP
Цитата Сообщение от easybudda Посмотреть сообщение
Но при этом тот же WinRAR может зарегистрировать на себя zip архивы и они станут в раре открываться так же, как родные раровские...
А winrar работает в своём собственном окне, а не в окне проводника
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9384 / 5434 / 916
Регистрация: 25.07.2009
Сообщений: 10,428
02.09.2010, 15:44     Создание виртуальной файловой системы для explorer #5
Цитата Сообщение от Evg Посмотреть сообщение
А winrar работает в своём собственном окне, а не в окне проводника
Ну да. Вот только судя по
Цитата Сообщение от odip Посмотреть сообщение
Поддержка zip-архивов встроена самим Microsoft в Windows XP
влепить такую же поддержку для дугих типов архивов в самом проводнике наверное не получится... Хотя точно не уверен, надо в мелкомягкой документации рыться (занятие - врагу не пожелаешь )
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16946 / 5351 / 329
Регистрация: 30.03.2009
Сообщений: 14,389
Записей в блоге: 26
02.09.2010, 16:49  [ТС]     Создание виртуальной файловой системы для explorer #6
Абыдна... Хотя если повспоминать, то кроме zip'а вроде бы такую функциональность нигде больше и не видел
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
02.09.2010, 22:45     Создание виртуальной файловой системы для explorer #7
Evg, это технология Shell Extension - расширение explorer
Прогрессивная достаточно, вот самому приходится изучать
идея в создании COM-объекта-сервиса, который загрузится в проводник и тот будет тянуть от него интерфейсы, например ShellFolder - для физического отображения папки, ShellView - для отображения в проводнике итд, довольно много всего и не совсем просто

например
http://msdn.microsoft.com/en-us/libr...(v=VS.85).aspx

Добавлено через 1 минуту
Цитата Сообщение от Evg Посмотреть сообщение
Абыдна... Хотя если повспоминать, то кроме zip'а вроде бы такую функциональность нигде больше и не видел
bluetooth-ftp сервис, встроенный прямо в проводник, у меня на ноуте веб-камера прямо в моем компьютере отображается, применений масса
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16946 / 5351 / 329
Регистрация: 30.03.2009
Сообщений: 14,389
Записей в блоге: 26
02.09.2010, 22:57  [ТС]     Создание виртуальной файловой системы для explorer #8
alex_x_x, а есть какой-нибудь пример конкретной несложной программы? А то по этому описанию не очень понял, что с чем едят и куда засовывают
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
02.09.2010, 23:08     Создание виртуальной файловой системы для explorer #9
две статьи у дяди
http://www.codeproject.com/KB/shell/shellextguide1.aspx
http://www.codeproject.com/KB/shell/shellextguide2.aspx
Visual C++ Windows Shell Programming книга, в гугле по второй же ссылке
на мсдне должны быть примеры

просто я сейчас с этим в уже практически готовом проекте разбираюсь, поэтому с нуля писать не приходилось
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16946 / 5351 / 329
Регистрация: 30.03.2009
Сообщений: 14,389
Записей в блоге: 26
02.09.2010, 23:22  [ТС]     Создание виртуальной файловой системы для explorer #10
Мда... надо будет запастись терпением
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16946 / 5351 / 329
Регистрация: 30.03.2009
Сообщений: 14,389
Записей в блоге: 26
05.09.2010, 11:20  [ТС]     Создание виртуальной файловой системы для explorer #11
Цитата Сообщение от alex_x_x Посмотреть сообщение
две статьи у дяди
http://www.codeproject.com/KB/shell/shellextguide1.aspx
http://www.codeproject.com/KB/shell/shellextguide2.aspx
Visual C++ Windows Shell Programming книга, в гугле по второй же ссылке
на мсдне должны быть примеры

просто я сейчас с этим в уже практически готовом проекте разбираюсь, поэтому с нуля писать не приходилось
Остановился на первой же табличке по первой ссылке.

Идея следующая. Запускаю свою программу, которая ковыряется на диске, собирает информацию из разных папок (например, найти все файлы с расширением *.txt) и формирует некий виртуальный каталог, в котором есть список всех найденных файлов, но расположенных так, как будто все эти файлы находятся в одном каталоге. Далее открывается explorer, отображающий эту папку как Readonly: файлы можно сортировать по имени, по размеру, по дате создания, открывать дабл-кликом, смотреть превью (если это картинка или видео) и т.д.

Насколько я понял из описания в первой табличке, там желаемой возможности нет. Я по английски читаю медленно, а потому глазами всю статью "пробежать" не могу. Поэтому мне проще спросить тут
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.09.2010, 12:06     Создание виртуальной файловой системы для explorer
Еще ссылки по теме:

Определение файловой системы C++ WinAPI
Определить тип файловой системы. Linux. C++ C++ Linux
C++ Программа, реализующая отображение файловой системы
Моделирование файловой системы C++
C++ Обход файловой системы и мультипоточность

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9384 / 5434 / 916
Регистрация: 25.07.2009
Сообщений: 10,428
05.09.2010, 12:06     Создание виртуальной файловой системы для explorer #12
Цитата Сообщение от Evg Посмотреть сообщение
Запускаю свою программу, которая ковыряется на диске, собирает информацию из разных папок (например, найти все файлы с расширением *.txt) и формирует некий виртуальный каталог, в котором есть список всех найденных файлов, но расположенных так, как будто все эти файлы находятся в одном каталоге. Далее открывается explorer, отображающий эту папку как Readonly: файлы можно сортировать по имени, по размеру, по дате создания, открывать дабл-кликом, смотреть превью (если это картинка или видео) и т.д.
В мак-оси smart folder примерно так же работает...
Yandex
Объявления
05.09.2010, 12:06     Создание виртуальной файловой системы для explorer
Ответ Создать тему
Опции темы

Текущее время: 02:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru