Простое, но эффективное расширение Explorer-а (shell extension) для визуализации файлов

Как то мой друг попросил меня написать небольшое приложение для Windows, в формате explorer shell extension, для создания отчета по выделенным файлам или папкам (с рекурсией), по произвольно заданному шаблону.

Поскольку он проделал неплохую работу по описанию и формализации задачи, то в один из вечеров я сел и написал эту программу за пару часов. Впрочем, поскольку сама задача не сложна, это не составило особого труда.

В дальнейшем я потратил еще часок, чтобы выложить эту программу (в исходных текстах, и в виде готовой инсталляции) на GitHub и создать простое, но весьма подробное описание.

Приложение работает на Windows OS от Windows XP до Windows 10 и чрезвычайно просто как в использовании, так и конфигурировании под Ваши нужды.

Для установки достаточно скачать содержимое папки Install на Ваш PC, и запустить файл install.cmd. После чего в контекстном меню Explorer-а, при выделенном файле или папке, должно появиться новое меню:

image

В данном меню будут отображены все текущие шаблоны для вывода, лежащие в папке, откуда было запущено расширение.

При клике на необходимом шаблоне (в суб-меню), практически моментально мы получим и сам отчет (автоматически запустится notepad.exe):

image

image

Для удаления расширения достаточно запустить файл uninstall.cmd.

Мой друг уверил меня, что он не нашел программ с подобной функциональностью; надеюсь, что это приложение кому-нибудь да пригодится!

Переменные для включения в шаблон описаны на главной странице проекта и не требуют особых пояснений. Исходный код (я надеюсь) прост и ясен, используйте и модифицируйте для Ваших нужд.

Приятного сканирования!
Метки:
Поделиться публикацией
Похожие публикации
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама
Комментарии 30
  • +2
    Я подобную программу (только консольную утилиту под DOS) делал очень давно когда учился в институте, с целью просканировать многочисленные сетевые диски университетской сети на предмет интересного (исходники, электронные книги и мануалы, софт...). Интернет тогда был dial-up 5 часов 100 рублей на месяц, флэшек не было — только дискеты, поэтому утилита весьма помогала: можно было дома в спокойной обстановке посмотреть содержимое этих дисков и решить что качать и в каком объеме, чтобы при следующем посещении компьютерного класса не рыться а сразу приступить к делу.
    • +2
      Но всё же избегайте использование managed языки для написания in-process Shell Extension для Explorer'а.
      Do not write in-process shell extensions in managed code
      Лучше всё же на c++
      • 0
        Вся работа собственно с shell-ом базируется на проекте SharpShell, достаточно стабильном и отработанном. Не могу утверждать наверняка, но, как мне кажется, статья 10-летней давности, которую Вы привели, уже не актуальна.

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

          В статье специально "update 2013" есть.

          • 0
            Автор SharpShell-а тоже ссылается на пару статей с msdn. Ну, и самое главное: все прекрасно работает, в этом Вы можете легко убедиться сами.
      • 0
        Вот если бы еще графики объемов хранимых данных подключить, было бы шикарно
        • 0
          Немного не понял, какие графики Вы имеете ввиду (мы, все-таки, имеем дело с текстом — как отображать, псевдографикой?), но, если Вам это действительно нужно, создавайте тикет на гитхабе с подробным описанием, обсудим…
          • 0
            Я имел ввиду объем данных, хранимых в каталогах, иногда просто удобно график посмотреть, какая из директорий занимает много места
      • 0

        спасибо за софтину

        • 0
          Пожалуйста, пользуйтесь на здоровье! Рад, что кому-то пригодилось (собственно, только для этой причины и публиковался этот обзорчик); надо будет еще парочку своих маленьких, но полезных проектов опубликовать.

          P.S. На github-е/codeplex-е, вообще-то, лежит огромное количество полезных, хороших и бесплатных программ. Проблема, собственно, найти необходимое.
        • 0
          не совсем понятно, зачем в информации о папке в xml файле дважды указан размер (86.5GB… 86.5GB)?
          • 0
            Шаблоны вывода, идущие с программой, предоставлены только для демонстрационных целей. Видимо, я просто ошибся.
          • 0
            не нашел программ с подобной функциональностью
            была когда-то CFi ShellToys. Очень помогала получать в нужном виде инфо по файлам/папкам
            • 0
              Вполне возможно, но мой друг не смог найти в свое время, или, возможно, функциональность была не совсем такой, как ему было нужно. К тому же (погуглил эти Cfi ShellToys), эта утилита была платной, вроде?
              А тут бесплатный аналог, да еще и open source :)
              • 0
                Да, платная. Но возможностей у неё всё-таки поболее будет.
                • 0
                  А каких не хватает, можете перечислить? Или лучше даже открыть тикет на гитхабе: если смогу, то выберу время и реализую.
                  • 0
                    Не, спасибо; уже пару лет назад бросил всё это.
                    В программерстве ноль, поэтому изобретал велосипеды для своего увлечения — были большие пачки фото, которые постил на (сегодня помирающем) panoramio. В качестве промежутка (базы) использовал Excel, куда и надо было вбить данные фото. Вот этот ShellToys и сильно выручал. Путём несложных манипуляций список фото (сотни штук за поездку) из текстового вида, сгенерированного ShellToys, приобретал такой монструозный вид, где в первых столбцах были номер фото, дата, время (остальное уже ручками + формулами).
            • 0
              Программка полезная, но PowerShell же может. Как пример для одной (корневой) папки:

              Get-ChildItem -Recurse | Measure-Object -Property Length -sum
              


              На выходе получим что-то вроде:

              Count : кол-во файлов
              Average :
              Sum : общий размер в байтах
              Maximum :
              Minimum :
              Property : Length


              Тут выше писали про графики, так вот к этому можно прикрутить модуль «Import-Excel», который автоматически при экспорте в Excel ещё и графики по полученным данным построит.
              • 0
                Программка полезная, но PowerShell же может.

                Ну, может то он может, но немного не то. Думаю, чтобы получить «то» (в точности такой же отчет, как и у File System Scanner — а именно в создании отчета по заданному шаблону и состоит функциональность программы), то PowerShell скрипт для этого будет куда сложнее моего C# кода. Ну, по удобству использования скрипты безусловно проигрывают shell extension.
              • 0
                Странно — скачал, запустил install.cmd. Уходит в бесконечный цикл. Я попытался это мелькание как-то прервать, получилось. Но выскочило сообщение, что нет файла сценария getadmin.vbs.
                • 0
                  getadmin,vbs — это PowerShell скрипт, создающийся в %temp%-е, для повышения привилегий.

                  Можете просто из elevated command prompt (Run as administrator) выполнить команду: srm.exe install FileSystemScanner.dll -codebase
                • 0
                  На такую мелочь писать целую программу )))

                  Я в подобных случаях (когда нужно снять слепок файловой системы) просто выполнял команду dir /a /s > file.txt

                  Для просмотра был простой скрипт к Far, который разбирал этот список как архив (выдавал «оглавление архива», чтобы можно было в file.txt зайти, как в архив), можно было неспешно ходить по каталогам, оценивать вес отдельных файлов и каталогов.

                  Потом обнаружил, что я не один такой, и есть более стабильный плагин ls -lR
                  • 0
                    На такую мелочь писать целую программу )))
                    Я в подобных случаях (когда нужно снять слепок файловой системы)

                    Вы неверно понимаете предназначение программы: дело отнюдь не в «слепке файловой системы».
                    • 0
                      Конечно, ведь вы не написали, для каких целей ваш друг использует программу.
                      Я написал комментарий под влиянием коммента NeoCode, т.к. сам встречался именно с таким способом использования.
                      • 0
                        Все очень просто: мой друг использует эту программку для генерации контента для веб-серверов и сервисов, где, по определенным причинам, модификация кода (например, для динамической генерации подобных отчетов) невозможна. По его словам, использование этой утилиты сократило время, затрачиваемое обычно на проведение таких работ, на 99% :)

                        Я понимаю, что звучит это не очень «технологично», и может быть достигнуто кучей иных способов, но, в данном случае, это оказалось практически единственное удобное и приемлемое решение.
                  • 0
                    А можно как-нибудь поддержку русского? Где там добавить «L»? =)
                    • 0
                      Просто сохраняете файл шаблона в кодировке UTF-8, все.
                    • 0
                      Disclaimer: не сочтите за рекламу, это freeware и не мое. Вдруг кому-то окажется полезной.

                      Я для визуализации каталогов в windows предпочитаю использовать программу Scanner
                      ссылка на загрузку
                      Scanner by Steffen Gerlach (ссылку на сайт автора дал, т.к. считаю, что невежливо давать прямой линк на загрузку, не давая ссылку на сам сайт)

                      скриншот окна программы


                      краткое описание возможностей
                      • красивая и информативная диаграмма каталогов и файлов
                      • развертывание диаграммы дочернего каталога в один клик
                      • возможность открывать/удалять нужный файл или каталог в один клик
                      • возможность строить диаграмму как по всем доступным дискам, так и по конкретному
                      • возможность встроить в контекстное меню дисков и каталогов

                      минусы:
                      • не open source, no freeware/donateware
                      • долго размышляет
                      • текстовых и иных машиночитаемых отчетов не создает

                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.