2009-07-08 17 views
22

Ich versuche ein virtuelles Windows-Laufwerk (wie C: \) zu erstellen, um einen Remote-Speicher zuzuordnen. Der Hauptzweck besteht darin, dies für den Benutzer klar zu machen. Daher würde der Benutzer nicht wissen, dass er von einer anderen Seite schreibt/liest.Erstellen eines virtuellen Windows-Laufwerks

Ich suchte nach verfügbaren Produkten, und ich finde, dass FUSE ist keine Option in Windows und WebDAV Karten direkt das Laufwerk, und ich würde gerne eine mittlere Schicht zwischen Windows und Remote-Speicher zu implementieren, eine Art von Diensten zu implementieren. Eine andere Alternative existiert, wie Dokan, die sehr teuer ist, und System.IO.IsolatedStorage Namespace, die anscheinend nicht explizit ein neues Windows-Laufwerk erstellen.

Wahrscheinlich Pismo (http://www.pismotechnic.com/) ist die Sache, die meist meine Anforderungen erfüllt, aber ich würde wissen, wenn es eine andere Alternative gibt, einschließlich einige Windows (C++ oder .NET) native API, das zu tun.

Danke fürs Lesen :)

Antwort

19

Wie ich sehe, gibt es mehrere Möglichkeiten, dies zu implementieren.

Der "native" erstellt einen benutzerdefinierten Treiber (.sys-Datei), der die E/A-Vorgänge abfängt. Microsoft nennt es MiniFilter. Diese Option ist die schwierigste, erlaubt Ihnen jedoch die volle Kontrolle.

Die der Feigling;) Option ist eine bestehende Bibliothek zu verwenden, um dies zu tun, Beispiele hierfür sind Dokan, GPL (dokan-dev.net/en), Pismo, kostenlos (www.pismotechnic.com) oder Callback File System (www.eldos.com).

Wenn Sie jedoch nicht Windows als Hauptziel haben, können Sie FUSE verwenden, was eine ziemlich gute Option ist.

+1

Sie haben einen Typ in der Pismo URL eingegeben. Es ist http://www.pismotechnic.com/ – Foole

+0

Danke! Du bist ein Rockstar. –

+1

Ich sehe, dass es sehr alte Frage ist, aber welche approche hast du gewählt und wie brauchbar war es? Vielen Dank! – tonek

1

den SUBST Befehl in einem Skript von Ihrer App gestartet verwenden könnte eine Option sein.

+0

Nicht für * remote * Speicher – Blorgbeard

+0

subst ist eine gute Option, aber so lange würde ich implementieren eine Art Mittelschicht, ich möchte Ereignisse lesen und schreiben. Ich denke, dass mit subst kann ich das nicht implementieren. Vielleicht kann ich ein "Daemon" -Programm machen, das den Ordner "substituiert" ständig überwacht, aber ich bevorzuge eine andere Option. – HyLian

0

Sie eine Shell-Namespace-Erweiterung schreiben konnte, so dass Sie alles darzustellen als ein Laufwerk (mit Unterordnern, Dateien, benutzerdefinierten Menüs und whatnot), aber Sie müssten alle Funktionen von Grund auf neu erstellen. Der Vorteil ist, es gibt viele Proben im Netz, wie man.

+2

Diese Objekte existieren jedoch nur auf Shell (Explorer) -Ebene. Sie können sie nicht in CreateFile() -Aufrufen verwenden. – MSalters

0

Unsere Callback File System, wie oben erwähnt, ist ein unterstütztes Produkt mit einem umfangreichen Funktionsumfang, Proben und Support. Wir bieten auch kostenlose nichtkommerzielle Lizenzen an.

+10

Leider ist es eine Blackbox und kostet Geld. –

+0

Dies ist keine Marketing-Plattform. Offenlegen, dass Sie für das Unternehmen arbeiten, bevor Sie es vorschlagen. Es fördert Transparenz und Vertrauen – geekonedge

+0

@Bozzy Bitte beachten Sie das Datum der Antwort beim Kommentieren. Die Regeln waren an diesen Tagen anders. Auch höflich zu sein tut nicht weh (ein freundlicher Hinweis für dich). –

Verwandte Themen