Я создал виртуальную файловую систему (а не расширение пространства имен) для Windows, которая выступает в качестве интерфейса нашего сервера управления документами, состоящего из файлов и папок. Чтобы иметь возможность отображать некоторые метаданные объектов DMS в проводнике Windows в качестве дополнительных выбираемых столбцов, я успешно предоставил свойства в Систему свойств Windows, реализовав обработчик свойств COM. Если обычные обработчики свойств фокусируются на определенных типах файлов, за которые они чувствуют ответственность, мой обработчик свойств добавляет свойства ко всем файлам независимо от их типа. Поскольку недвижимость Обработчики могут быть зарегистрированы только на уровне типа файла, я зарегистрировал свой обработчик около 30 типов подКак зарегистрировать обработчик свойств в папках?
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\PropertySystem\PropertyHandlers\<.Extension>
Однако мне не удалось зарегистрировать обработчик свойств для объектов папки. Поскольку все объекты в нашей файловой системе являются виртуальными, я создаю хранилище свойств (IPropertyStore
) путем реализации IInitializeWithFile
вместо IInitializeWithStream
. Свойства запрашиваются у нашей DMS по пути IInitializeWithFile
, действующего в качестве ключа, и не были прочитаны из содержимого объектов. Эта концепция будет работать и для папок.
Для вызывался по папкам Я пытался связать обработчик, зарегистрировав в различных хорошо известных идентификаторов как Folder
, Directory
, AllFileSystemObjects
и *
вместо расширения файла без успеха. Я также ничего не нашел в документации MSDN в отношении этого аспекта.
Есть ли способ зарегистрировать обработчик свойств Windows в папках? Или есть другой способ добавить пользовательские столбцы в папки в проводнике Windows?
Если это не NSE, как вы реализуете эту виртуальную файловую систему? Пользовательский драйвер ядра и установка его в качестве буквы диска? – Anders
@ Anders: Да, я использую драйвер стороннего ядра, который позволяет реализовать файловую систему в пространстве пользователя в .NET и монтировать ее как букву диска. Обработчик свойств COM реализован на C++. –
Не настоящее решение, но более старые интерфейсы расширений оболочки обработчика столбцов с 2000/XP по-прежнему работают в некоторых сторонних версиях Explorer. – Anders