2008-09-11 35 views
32

¿Hay alguna manera de crear una unidad virtual en "(My) Computer" y manipularla, algo así como lo hace JungleDisk?C#: Crear una unidad virtual en la computadora

Probablemente hace algo como:

override OnRead(object sender, Event e) { 
    ShowFilesFromAmazon(); 
} 

¿Hay alguna API: s para esto? Tal vez para escribir en un archivo XML o una base de datos, en lugar de un disco real.


El Dokan Library parece ser la respuesta que corresponde sobre todo con mi pregunta, a pesar de que System.IO.IsolatedStorage parece ser el Microsoft-entorno más normalizado y más adaptada.

Respuesta

20

Puede utilizar el Dokan library para crear una unidad virtual. Hay un contenedor .Net para interactuar con C#.

+1

Hasta donde yo sé, no hay forma de usarlo en un proyecto comercial, está bajo licencia LGPL. Sugiero usar el servidor WebDAV + funcionalidad de montaje de unidad incorporada de Windows/Mac OS X. Probablemente esta es la forma más rápida de lograr el resultado. –

+11

Creo que mezclas cosas: LGPL no es incompatible con un uso comercial. Puedes enlazar con el archivo dll (referenciarlo) y solo si realizas cambios en el archivo DLL de Dokan, debes liberar la fuente: ¡SOLAMENTE la fuente de la biblioteca Dokan modificada! ESTE NO ES EL CASO PARA EL CÓDIGO ** GPL **, PARA GPL USTED DEBE LIBERAR LA FUENTE DE ** SU ** APLICACIÓN ENTERA. – jdehaan

+1

Dokan lleva mucho tiempo muerto y tiene errores, sin esperanza de solución de errores. –

6

Sí, utilizar las clases en System.IO.IsolatedStorage

+2

No entiendo cómo IsloatedStorage puede agregar un evento 'OnRead' y hacer' ShowFilesFromAmazon() '? ¿Podrías darme un ejemplo? ¡Gracias! –

2

El contenido de Mi PC puede incluir extensiones de espacio de nombres de shell. Estos objetos COM se ejecutan dentro del proceso principal de Explorer, al igual que muchas otras extensiones de shell. Usar C# para tales extensiones es una mala idea, ya que su extensión no puede controlar qué versión de CLR Explorer.exe puede usar. Y Microsoft permite solo un CLR por proceso.

+0

Creo que esto cambió con .net 4.0 – Peter

Cuestiones relacionadas