2012-12-18 2 views
7

У меня есть большая коллекция папок для проектов, над которыми я работаю. Я пытался найти лучший способ отсортировать их все в течение длительного времени, и я хочу написать приложение, которое создает группы на основе любых критериев, которые я говорю, таких как «папки из 2011» или «папки, содержащие топорный тип файла» »и т. д.Создание виртуальных папок и подключение их к файловой системе

Это довольно прямолинейно и не представляет проблемы с кодом, используя собственный интерфейс в winForms или WPF или что-то в этом роде. Но я думаю, что было бы намного лучше, если бы я мог сделать эти папки частью файловой системы, поэтому другие приложения (например, существующие файловые исследователи) могут их видеть.

Возможно ли это? Это вызовет проблемы, которые я не рассматривал? Как я могу это сделать, если это возможно?

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

EDIT: хорошо это, очевидно, возможно, так как http://www.virtualfolder.net/ может сделать это, и теперь, когда я думаю об этом так может TrueCrypt, хотя было бы неплохо, если бы он не должен выглядеть как отдельный водить машину. Так возникает вопрос, как его реализовать?

+0

Windows 7 имеет встроенную функциональность –

ответ

4

Это достигается с помощью драйверов файловой системы или драйверов фильтра файловой системы. Сначала создайте виртуальную файловую систему и установите ее на букву диска, а также в папку на диске NTFS (папка должна существовать, но ее содержимое «заменено» деревом каталогов виртуальной файловой системы). Драйверы фильтра файловой системы позволяют вводить виртуальные файлы и папки в существующие папки, не заменяя их.

VirtualFolder использует драйвер файловой системы, поскольку он создает букву диска.

Оба типа драйверов написаны на языке C и работают в режиме ядра. Написание их требует глубокого знания внутренних компонентов Windows и опыта разработки драйверов (поскольку драйверы файловой системы - один из самых сложных типов драйверов).

Мы предлагаем несколько продуктов, связанных с виртуальным хранилищем. Одна из них, Callback File System, является драйвером файловой системы. Он вызывает ваш код режима пользователя для выполнения фактических функций файловой системы. Другой продукт, CallbackFilter, является драйвером фильтра FS (и он также вызывает ваш код пользовательского режима). Однако текущая версия CallbackFilter не позволяет вводить виртуальные файлы и папки (это будет реализовано в следующей версии).

Существует также доступ к файловому файлу Pismo File, они используют методы драйвера фильтра. Вы можете проверить их, если то, что вам нужно, может быть выполнено.

9

Вы можете создать Shell Namespace Extension, который собирает необходимую информацию о файле и отображает его в проводнике Windows любым способом. You can choose where ваше расширение расположено, как собственный узел верхнего уровня, дочерний элемент другой виртуальной папки/расширения системы или как дочерний элемент папки файловой системы.

Написание SNE не является тривиальным, но это намного проще, чем писать драйвер файловой системы нижнего уровня, и для него не требуются специальные драйверы-ориентированные компиляторы. Любой компилятор, поддерживающий разработку COM-объектов, будет работать.

0

Из того, что я собираю, вы ищете способ представления результатов предопределенных файловых запросов, как если бы они находились в определенном месте в файловой системе. Если это правильно, вы можете посмотреть на Hard Links and Junctions.Существуют ограничения на то, что вы можете сделать с этими службами файловой системы. Однако это действительно необходимо реализовать.

Смежные вопросы