Hallo,
weiss jemand ob folgende Idee funktioniert:
Ich will ein virtuelles Laufwerk im Explorer erzeugen, das eine Schnittstelle zu einer Datenbank ist. Wenn ein Benutzer eine Datei in das Laufwerk kopiert, will ich die Datei in die Datenbank speichern und umgekehrt: Kopieren von Dateien aus dem Laufwerk => Export der Datei aus der DB in den jeweiligen Ordner.
Ist sowas möglich? Wenn ja wie 😉 ?
Gruß Volker
Ich glaube nicht das dies mit C# funktionieren wird. Du musst sozusagen einen Massenspeicher emulieren und die Zugriffe auf deine Datenbank steuern.
Das wird einiges an Arbeit.
Geht nicht gibts nicht 8)
aber doch so schwer?
Ist das nicht so ähnlich wie mit nem USB-Stick oder einer Camera/ Handy die über USB angeschlossen werden?
Ich kann es dir leider nicht sagen, da ich kein virtuelles Lauwerk erstellt habe.
Du könntest dir aber die Open Source Projekte um ISO Images zu mounten anschauen und da vielleicht Ideen aufschnappen.
Hmm,
ein eigener Explorer wäre wohl das einfachste ... müsste dann nur die Laufwerke, Ordner und Dateien auslesen und anzeigen.
Hallo,
ich weiß der Thread ist schon alt. Aber ich stehe gerade vor dem gleichen Problem mit dem virtuellen Laufwerk in Verbindung mit der Datenbank-Schnittstelle. Hat vielleicht inzwischen jemand eine Idee für sowas? Habe mich schon halb tot gegoogelt.
Gruß Jörg
Naja, es gibt z.B. Dokan und ein .NET Binding. Das ist ein virtuelles Dateisystem in Userspace. Hab ich mal privat benutzt, hat recht gut funktioniert. Ob man das wirklich produktiv benutzen kann, weiß ich nicht, ich hatte keine Probleme.
Microsoft SQL Server Denali : FileStreams ... verhält sich genauso wie eine Dateifreigabe.
Siehe auch Is there a simple “virtual file” class for .NET (c# if source is available)?.
Dort wird auch noch auf ein kommerzielles Produkt hingewiesen, dass stabiler arbeiten zu scheint.
Die Funktionen des neuen SQL Servers sind dahingehend recht interessant, ist aber noch BETA.
Es gibt aber auch noch anderer Ansätze, die Du verfolgen könntest:
Du könntest via ASP.net einen WebDAV Server erstellen, der seine Daten in die DB schreibt / aus der DB liest. WebDAV wiederum kannst Du dann sehr einfach als Laufwerk mappen.
Es wurde auch schon erwähnt "einen eigenen Explorer" zu schreiben. Stattdessen kannst Du auch den Windows-Explorer erweiteren. Stichwort "Shell Namespace Extension". Das sollte aber (zumindest der Teil, der in den Explorer geladen wird) nicht in .net erfolgen.
Bart Simpson
Praxis ist wenn alles funktioniert und keiner weiss warum.
Theorie ist wenn man alles weiss, aber nichts funktioniert.
Bei uns wird Theorie und Praxis vereint: Nichts funktioniert und keiner weiss warum...
Das sollte aber (zumindest der Teil, der in den Explorer geladen wird) nicht in .net erfolgen.
Mit .NET 4.0 und höher ist es erlaubt Shell Extensions zu schreiben.
"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)
Die Frage ob man Shell Extension mit .net machen kann/sollte, beantworte ich mal mit einem klaren JEIN :evil:
Ja, es ist möglich und dank SxS in .net 4 sollte es theoretisch auch kein Problem darstellen. Allerdings ist sich selbst Microsoft noch nicht so ganz sicher, ob es nicht doch noch zu "Nebenwirkungen" kommen kann und deshalb ist es nach wie vor nicht supported. Und diese Aussage stammt von den Jungs die für die Codebeispiele in Microsofts All-in-one-Code-Framework zuständig sind.
Siehe dazu auch: Is it supported to write Windows Shell Extension using .NET 4 today?
Bart Simpson
Praxis ist wenn alles funktioniert und keiner weiss warum.
Theorie ist wenn man alles weiss, aber nichts funktioniert.
Bei uns wird Theorie und Praxis vereint: Nichts funktioniert und keiner weiss warum...