2013-04-17 7 views
5

Ich habe eine allgemeine Frage nach C# & Windows-API:Erstellen virtuellen Dateipfad aus dem Strom

Meine Aufgabe ist es, eine Datei von einem Dokumenten-Management-System (DMS) geladen und aus dieser Datei einen Byte-Array erstellen. Vom Entwickler des DMS bekam ich eine DLL, die eine Methode wie folgt bestimmt:

loadFile(int DocId, string PathToSaveFile); 

Leider hat die gegebene dll mir nicht ein Verfahren bereitstellen, die angeforderte Datei als Byte-Array oder jede Art von Strom zu liefern. Nun meine Frage, ist es mit C# möglich, irgendeine Art von virtuellem Pfad zu erstellen, der tatsächlich nicht auf dem sekundären Speicher existiert. Stattdessen werden alle in diesen Pfad geschriebenen Bits und Bytes in einem Stream an mich weitergeleitet. Das Ziel meiner Absicht ist es, die Leistung zu erhöhen, da ich keine Daten auf eine Festplatte schreiben muss.

Ich habe schon viel gesucht, aber eigentlich nicht die Stichworte, nach denen ich suchen muss. Vielleicht kann mir jemand einen Hinweis geben oder einfach sagen, dass es überhaupt nicht möglich ist.

+1

ein WebDAV-Server? Zum Beispiel http://www.webdavsystem.com/ – I4V

+0

Randnotiz: "Erhöhen Sie die Leistung, da ich keine Daten auf eine Festplatte schreiben muss." - Sie müssen die Speicher-/Festplattennutzung sehr gut planen. Andernfalls werden Sie mit mehr Daten auskommen, die vernünftigerweise in den physischen Speicher Ihres Rechners passen, und anstatt die Leistung zu verbessern, erhalten Sie langsameren und wesentlich komplizierteren Code. Interessant zu schreiben, aber nicht notwendig schneller. –

Antwort

2

Es hängt etwas davon ab, wie die Bibliothek die Datei öffnen und die Datei lesen wird. Wenn es CreateFile verwendet, gibt es das Potenzial, dass Sie Zugriff über eine Named Pipes bereitstellen könnten. Der Pfad zu einer Named Pipe kann mit \\.\pipe\PipeNameHere angegeben werden. In C# können Sie NamedPipeServerStream verwenden.

Allerdings denke ich, die Chancen der Client-Anwendung, die damit kompatibel sind, sind relativ schlank und würde vorschlagen, eine RAM drive zu erstellen, die einfacher zu implementieren ist und eher funktionieren wird. Ein RAM-Laufwerk wird als normales Laufwerk angezeigt. Sie können Dateien speichern und laden, aber alles ist im Speicher erledigt.