Есть ли способ эмулировать диск в .NET, перехватывая операции чтения/записи/блокировки?
Я хотел бы создать что-то с интерфейсом, похожим на GMail Drive в C#.Эмулировать жесткий диск в .NET
Спасибо, Том
Есть ли способ эмулировать диск в .NET, перехватывая операции чтения/записи/блокировки?
Я хотел бы создать что-то с интерфейсом, похожим на GMail Drive в C#.Эмулировать жесткий диск в .NET
Спасибо, Том
Я использую EldoS Callback File System себя для этой цели, но несмотря на то, что это хорошо, это не совсем дешево.
Есть также несколько бесплатных/дешевых проектов, и я уверен, что один из них был упомянут в аналогичном вопросе о SO недавно - больше не может найти его на данный момент. Стабильность, как правило, является серьезной проблемой, однако, поскольку многоуровневые драйверы файловой системы Windows не являются тривиальными.
Не очень, .Net сидит поверх функциональных возможностей ОС, таких как доступ к диску, чтобы предоставить вам такие вещи, как управляемые файлы. Вы можете написать все это в управляемом C#, но вам понадобятся неуправляемые вызовы, чтобы заставить ОС обращаться с ним как другой диск.
Все расширения оболочки материал COM: http://msdn.microsoft.com/en-us/library/cc147467(VS.85).aspx
Вы могли бы, однако, написать настольное приложение .Net, которое позволило перетаскивания из проводника и который был похож на вид файловой системы.
В Linux вы можете использовать API Mono.Fuse (http://www.jprl.com/Projects/mono-fuse.html) для реализации файловых систем на основе .NET с кодом пользователя.
Вы могли видеть, как это делает http://www.truecrypt.org/. Это делается именно с использованием файлов или с помощью диска или раздела. И затем он монтирует файл, как если бы он был настоящим приводом. Теперь, возможно, что исходный код немного сложный;)
Вы также можете использовать EZNamespaceExtension for .NET. Это дает вам интеграцию с Windows Explorer. Не слишком дорого, учитывая, что лицензия на разработчика, а не дистрибутива.
Обновление Большая проблема с EZNamespaceExtension.NET. Он не был обновлен в течение длительного времени. LogicNP, похоже, потерял интерес к EZNamespaceExtension.NET, потому что с 2010 года не было выпусков с новыми функциями. Нет поддержки .NET 4 и поддержки для панели инструментов с лентой Windows 8
Я просто проверил EZNamespaceExtension for .NET с вышеуказанной ссылкой. Кажется, что они постоянно обновляют версию выпуска 2013 года. Но не уверен, что может ответить на вопрос «Показать как диск в Explorer.exe (AFAIK. Он не может отображаться как буква диска)