Эмулировать жесткий диск в .NET - PullRequest
4 голосов
/ 26 сентября 2008

Есть ли способ эмулировать дисковод в .NET, перехватывая операции чтения / записи / блокировки?
Я хотел бы создать что-то с интерфейсом, похожим на GMail Drive в C #.

Спасибо, Том

Ответы [ 6 ]

7 голосов
/ 26 сентября 2008

В Linux вы можете использовать API Mono.Fuse (http://www.jprl.com/Projects/mono-fuse.html) для реализации файловых систем на основе .NET с кодом пользователя.

2 голосов
/ 13 мая 2009

Вы могли видеть, как это делает http://www.truecrypt.org/. Он делает это либо с помощью файлов, либо с помощью диска или раздела. И затем он монтирует файл так, как если бы это был настоящий диск. Теперь, вероятно, исходный код немного сложен;)

1 голос
/ 26 сентября 2008

Я использую Eldos Callback File System для этой цели, но, хотя это хорошо, это не совсем дешево.

Есть также несколько бесплатных / дешевых проектов, и я уверен, что один из них был упомянут в аналогичном вопросе о SO в последнее время - хотя в данный момент его найти больше не могу. Стабильность, как правило, является серьезной проблемой, поскольку многоуровневые драйверы файловой системы Windows не тривиальны.

0 голосов
/ 28 апреля 2013

Я только что оформил заказ EZNamespaceExtension для .NET по вышеуказанной ссылке. Похоже, они идут в ногу со временем, как версия 2013 года. Но не уверен, что может ответить на вопрос «Отображать как диск в Explorer.exe» (AFAIK. Он не может отображаться как буква диска)

0 голосов
/ 18 ноября 2009

Вы также можете использовать EZNamespaceExtension для .NET . Это дает вам интеграцию с Windows Explorer. Не слишком дорого, учитывая, что лицензия распространяется на разработчика, а не на распространение.

Обновление Большая проблема с EZNamespaceExtension.NET. Он давно не обновлялся. Похоже, что LogicNP утратил интерес к EZNamespaceExtension.NET, потому что с 2010 года не было выпуска с новым набором функций. Нет поддержки .NET 4 и нет поддержки панели инструментов ленты Windows 8

0 голосов
/ 26 сентября 2008

Не совсем, .Net находится на вершине функциональности ОС, такой как доступ к диску, чтобы дать вам такие вещи, как управляемые средства доступа к файлам. Вы можете написать все это в управляемом C #, но вам понадобятся неуправляемые вызовы, чтобы ОС воспринимала это как другой диск.

Все компоненты расширения оболочки - COM: http://msdn.microsoft.com/en-us/library/cc147467(VS.85).aspx

Однако вы могли бы написать настольное приложение .Net, которое позволяло перетаскивать файлы из проводника и выглядело как представление файловой системы.

...