Emular disco duro en .NET
-
02-07-2019 - |
Pregunta
¿Hay una manera de emular una unidad de disco en .NET, interceptando las operaciones de lectura / escritura / bloqueo?
Me gustaría crear algo con un front-end similar a GMail Drive en C #.
Gracias, Tom
Solución
También hay algunos proyectos gratuitos / baratos, y estoy seguro de que uno de ellos se mencionó en una pregunta similar en SO recientemente, aunque no puedo encontrarlo por el momento. Sin embargo, la estabilidad suele ser un problema importante, ya que los controladores del sistema de archivos de Windows en capas no son triviales.
Otros consejos
En Linux puede usar la API Mono.Fuse ( http: // www. jprl.com/Projects/mono-fuse.html ) para implementar sistemas de archivos basados ??en .NET con código de usuario-tierra.
Puede ver cómo http://www.truecrypt.org/ lo está haciendo. Está haciendo exactamente eso usando archivos o usando una unidad o partición. Y luego monta el archivo como si fuera un disco real. Ahora, probablemente el código fuente sea un poco complejo;)
En realidad, no .Net se encuentra en la parte superior de la funcionalidad del sistema operativo, como el acceso al disco, para ofrecerle elementos como los accesores de archivos administrados. Usted podría escribirlo todo en C # administrado, pero necesitaría llamadas no administradas para que el sistema operativo lo trate como otro disco.
Todo lo relacionado con la extensión del shell es COM: http: //msdn.microsoft.com/en-us/library/cc147467(VS.85).aspx
Sin embargo, podría escribir una aplicación de escritorio .Net que permitiera arrastrar y soltar desde el explorador y que pareciera una vista del sistema de archivos.
También puede usar EZNamespaceExtension para .NET . Esto le da la integración con el Explorador de Windows. No es demasiado caro dado que la licencia es por desarrollador y no por distribución.
Actualizar Gran problema con EZNamespaceExtension.NET. No se ha actualizado durante mucho tiempo. LogicNP parece haber perdido su interés en EZNamespaceExtension.NET porque no ha habido un lanzamiento con nuevas funciones desde 2010. No es compatible con .NET 4 y no es compatible con la barra de herramientas de Windows 8 ribbon
Acabo de revisar EZNamespaceExtension para .NET con el enlace anterior. Parece que se mantienen al día como lanzamiento de la versión 2013. Pero no estoy seguro de que pueda responder a la pregunta de Mostrar como unidad en Explorer.exe (AFAIK. No se puede mostrar como letra de unidad)