Что такое Dokan Library?

Dokan Library — это не самостоятельное прикладное программное обеспечение, которое можно запустить двойным кликом. Это открытая (open-source) библиотека для разработчиков, которая позволяет создавать пользовательские файловые системы в операционной системе Microsoft Windows. По своей сути и назначению она является аналогом популярного проекта FUSE (Filesystem in Userspace) для Linux и других UNIX-подобных систем, но адаптированным под Windows.

Основная идея и предназначение

Главная задача Dokan — предоставить инструментарий, с помощью которого программист может «научить» Windows работать с данными, хранящимися в нестандартном виде, как с обычной папкой на диске. Библиотека выступает в роли прослойки (шлюза) между ядром Windows и пользовательским приложением.

Вместо того чтобы писать сложный и опасный драйвер устройства на уровне ядра (kernel-mode), что требует глубоких знаний и прав администратора, разработчик пишет обычную программу (в пользовательском режиме — user-mode). Эта программа, используя API Dokan, сообщает системе: «Здесь есть виртуальный диск, на котором находятся такие-то файлы и папки». Dokan, в свою очередь, предоставляет системе драйвер, который транслирует стандартные файловые операции (открыть, прочитать, записать, удалить) в вызовы кода пользовательского приложения.

Проще говоря, Dokan позволяет создать программу, которая делает вашу облачную папку, архив или даже веб-сайт выглядящим для Windows как обычный локальный диск Z:\.

Ключевые компоненты и архитектура

Библиотека состоит из двух основных частей:

  • Драйвер режима ядра (Dokan Kernel Driver): Это низкоуровневый компонент, который устанавливается в систему и обеспечивает взаимодействие с подсистемой ввода-вывода Windows. Он обрабатывает запросы от системы и перенаправляет их в пользовательское приложение.
  • Библиотека пользовательского режима (Dokan User-mode Library, DLL): Набор функций, которые использует разработчик в своём приложении для реализации логики файловой системы: обработки путей, операций чтения/записи, атрибутов файлов и т.д.

Как это работает на практике?

  1. Разработчик пишет программу, которая, например, подключается к FTP-серверу.
  2. Используя Dokan, программа «монтирует» этот FTP-сервер как виртуальный диск в Windows (например, диск F:\).
  3. Когда пользователь в Проводнике открывает диск F:\, Windows через драйвер Dokan отправляет запрос на получение списка файлов.
  4. Драйвер передаёт этот запрос пользовательской программе.
  5. Программа, в свою очередь, по FTP-протоколу запрашивает список файлов с сервера, преобразует его в нужный формат и через Dokan возвращает результат Windows.
  6. Пользователь видит список файлов с FTP прямо в Проводнике и может работать с ними почти как с локальными (копировать, открывать), хотя на самом деле все операции будут транслироваться в сетевые запросы.

Для чего используется Dokan? Примеры приложений

Благодаря Dokan Library были созданы многие известные и полезные программы. Вот несколько типичных сценариев её использования:

  • Доступ к сетевым и облачным хранилищам как к локальным дискам: Программы, которые монтируют облако (Google Drive, Dropbox, Яндекс.Диск), FTP, SFTP, WebDAV серверы в виде диска. Классический пример — утилита NetDrive или старые версии Expandrive.
  • Работа с архивами без распаковки: Приложения, позволяющие смонтировать архив (ZIP, RAR, 7z) как папку и извлекать файлы напрямую. Например, WinCDEmu для образов ISO использует форк Dokan — Dokany.
  • Шифрование файлов «на лету»: Файловая система, которая прозрачно шифрует данные при записи на физический диск и расшифровывает при чтении (например, Boxcryptor до перехода на собственный драйвер).
  • Резервное копирование и зеркалирование: Создание виртуальных представлений бэкапов.
  • Специализированные файловые системы: Например, файловая система, представляющая содержимое базы данных или почтового ящика в виде иерархии папок и файлов.

Dokan vs Dokany: в чём разница?

Изначальный проект Dokan Library был создан японским разработчиком Хироюки Ямадой (Hiroki Yamauchi) и долгое время не обновлялся. Со временем сообщество создало активно развивающийся форк под названием Dokany.

Dokany — это современная, поддерживаемая версия библиотеки, совместимая с последними версиями Windows (10, 11) и исправляющая многие ошибки и уязвимости оригинала. Сегодня, когда говорят о Dokan в контексте новых разработок, чаще всего подразумевают именно Dokany. Большинство актуальных приложений перешли на использование этой версии.

Что делать обычному пользователю, если он увидел «Dokan» в системе?

Обычный пользователь может столкнуться с Dokan в нескольких случаях:

  1. В списке установленных программ (Панель управления -> Программы и компоненты) может значиться «Dokan Library» или «Dokany». Это означает, что у вас установлена программа, которая её использует (например, клиент для облачного хранилища или утилита для работы с архивами).
  2. В диспетчере устройств в разделе «Драйверы файловой системы» может быть устройство «Dokan File System Driver» или «Dokany File System Driver».

Самостоятельно удалять эти компоненты не рекомендуется, так как это приведёт к неработоспособности приложений, которые от них зависят. Удалять нужно основную программу, которая использует Dokan, тогда её установщик (или стандартный деинсталлятор Windows) должен корректно удалить и драйвер.

Выводы

Dokan Library — это мощный и важный инструмент в экосистеме Windows, который значительно упрощает жизнь разработчикам, желающим создавать виртуальные файловые системы. Для конечного пользователя она остаётся «невидимой» технологией, работающей под капотом любимых программ, которые делают доступ к удалённым и специализированным данным простым и интуитивно понятным через привычный Проводник Windows.

Таким образом, отвечая на прямой вопрос пользователя: Dokan Library — это не программа для запуска, а библиотека (набор инструментов) для разработчиков, позволяющая создавать приложения, которые добавляют в Windows новые виртуальные диски.

Источники