2008-09-11 5 views
32

Est-il possible de créer un lecteur virtuel dans "(Mon) ordinateur" et de le manipuler, un peu comme JungleDisk le fait?C#: Créer un lecteur virtuel dans l'ordinateur

Il ne probablement quelque chose comme:

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

Y at-il une API: s pour cela? Peut-être écrire dans un fichier XML ou une base de données, au lieu d'un vrai disque.


Le Dokan Library semble être la réponse qui correspond la plupart du temps avec ma question, même si System.IO.IsolatedStorage semble être le plus standardisé et plus Microsoft environnement adapté.

Répondre

20

Vous pouvez utiliser le Dokan library pour créer un lecteur virtuel. Il existe un wrapper .Net pour l'interfaçage avec C#.

+1

Pour autant que je sache, il n'y a aucun moyen de l'utiliser dans un projet commercial, il est sous licence LGPL. Je suggère d'utiliser le serveur WebDAV + fonctionnalité intégrée de montage de lecteur Windows/Mac OS X. Probablement c'est le moyen le plus rapide d'atteindre le résultat. –

+11

Je pense que vous mélangez des choses: LGPL n'est pas incompatible avec un usage commercial. Vous pouvez lier contre la DLL (référence) et seulement si vous apportez des modifications à la DLL Dokan elle-même, vous devez libérer la source: mais la source de la bibliothèque Dokan modifiée SEULEMENT! CE N'EST PAS LE CAS POUR LE CODE ** GPL **, POUR LA GPL, VOUS DEVEZ LIBÉRER LA SOURCE DE ** VOTRE ** APPLICATION ENTIÈRE. – jdehaan

+1

Dokan est mort depuis longtemps et n'a pas d'espoir pour des corrections de bugs. –

6

Oui, utiliser les classes System.IO.IsolatedStorage

+2

Je ne comprends pas comment IsloatedStorage peut ajouter un événement 'OnRead' et faire' ShowFilesFromAmazon() '? Pourriez-vous me donner un exemple? Merci! –

2

Le contenu de Poste de travail peut inclure des extensions d'espace de noms Shell. Ces objets COM s'exécutent dans le processus principal de l'Explorateur, tout comme de nombreuses autres extensions de shell. L'utilisation de C# pour ces extensions est une mauvaise idée, car votre extension ne peut pas contrôler quelle version de CLR Explorer.exe peut utiliser. Et Microsoft n'autorise qu'un seul CLR par processus.

+0

Je pense que cela a changé avec .net 4.0 – Peter

Questions connexes