Cómo crear una unidad Virtual de Windows


Estoy intentando crear una unidad virtual de Windows ( como c:\ ) para asignar un almacenamiento remoto. El objetivo principal es hacerlo de una manera clara para el usuario. Por lo tanto, el usuario no sabría que está escribiendo/leyendo desde otro sitio.

Estaba buscando productos disponibles, y encuentro que FUSE no es una opción en Windows y WebDAV mapea directamente la unidad, y me gustaría construir una capa intermedia entre windows y el almacenamiento remoto para implementar algún tipo de servicios. Otras alternativas existe, como Dokan, que es muy caro, y System.IO.IsolatedStorage Namespace, que no parece explícitamente crear una nueva unidad de Windows.

Probablemente pismo ( http://www.pismotechnic.com / ) es lo que en su mayoría coincide con mis requisitos, pero sabría si hay otra alternativa, incluyendo algunas API nativas de Windows ( C++ o.NET ) para hacer eso.

Gracias por leer:)

Author: HyLian, 2009-07-08

8 answers

Como veo, hay varias opciones para implementar esto.

El "nativo" está creando un controlador personalizado (.archivo sys) que intercepta las operaciones de E / S. Microsoft lo llama MiniFilter. Esta opción es la más difícil, pero le permite un control total.

La opción coward's;) es usar una biblioteca existente para hacer esto, ejemplos de esto son Dokan, GPL ( dokan-dev.net/en ), Pismo, libre ( www.pismotechnic.com ) o Sistema de Archivos de Devolución de Llamada ( www.eldos.com).

Sin embargo, si no tiene Windows como objetivo principal, puede usar FUSE, que es una opción bastante buena.

 20
Author: HyLian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-07 11:54:20

Si usted (o alguien más) todavía le importa codificar el controlador en sí, ya hay varios prototipos de código abierto y de trabajo:

 2
Author: saulius2,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-06-19 18:36:43

Usar el comando SUBST en un script iniciado por tu app podría ser una opción.

 1
Author: Jonathan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-07-08 09:15:13
 0
Author: joe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-07-08 09:21:28

Podría escribir una extensión de espacio de nombres de Shell, lo que le permite representar cualquier cosa como una unidad (con subcarpetas, archivos, menús personalizados y demás), pero tendría que construir toda la funcionalidad desde cero. La ventaja es que hay muchas muestras en la red, como este uno.

 0
Author: Paul-Jan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-07-08 19:23:49

Echa un vistazo a este artículo. Esto se hace usando SUBST.exe presente en el sistema operativo Windows.

Http://code-in-action.blogspot.com/2013/11/create-virtual-drive-through-command.html

 0
Author: Mazhar H,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-11-11 17:48:01
 0
Author: Umesh Joshi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-21 19:05:10

Nuestro Callback File System, como se mencionó anteriormente, es un producto compatible con un completo conjunto de características, muestras y soporte. También ofrecemos licencias gratuitas no comerciales.

 0
Author: Eugene Mayevski 'Allied Bits,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-10-17 15:33:03