Виртуальный диск Windows для удаленного веб-сервиса
Мне нужно реализовать виртуальный диск Windows, который отображается как отдельное дисковое устройство в проводнике Windows, и перенести все файлы / каталоги, переданные туда и обратно, на удаленный веб-сервис - например, в DropBox. Нужно ли реализовывать / использовать SDK драйвера ядра? Или возможно использовать только расширения оболочки? Мне нужно перехватить все операции file / dir на этом диске и сопоставить их с соответствующими вызовами WebService (создание / удаление / перемещение / редактирование файла и передача данных). Спасибо
4 ответа
Для этого вам потребуется комбинация драйвера режима ядра и службы / приложения Windows:
- http://dokan-dev.net/en/ (бесплатно)
- http://www.eldos.com/cbfs/ (коммерческий)
Windows 7+ позволяет вам монтировать VHD как диск. API описан в этой статье MSDN - Виртуальный диск API в Windows 7.
Я не знаю, возможно ли это только с помощью расширений оболочки, но, просматривая статью, я вижу API AttachVirtualDisk, и вы должны быть в состоянии P/Invoke это.
Вы можете использовать расширения пространства имен, это то, что делает DropBox. Wuala и некоторые другие облачные хранилища, с другой стороны, используют нашу файловую систему обратного вызова для создания виртуального диска.
Рассматривали ли вы WebDAV? Это не потребует от вас установки чего-либо на клиенте, поскольку функциональность интегрирована в Windows (я полагаю, начиная с XP). Он использует REST, так что вы можете даже реализовать его самостоятельно или искать решение в codeplex. Если речь идет об удаленном хранилище, то для этого можно использовать дополнение IIS (я полагаю, это сборка для IIS 7).