2013-04-17 27 views
5

Ho una domanda generale riguardante C# & API di Windows:Crea percorso file virtuale dal flusso

mio compito sta caricando un file da un sistema di gestione dei documenti (DMS) e creare un array di byte da questo file. Dallo sviluppatore del DMS ho ottenuto una dll che fornisce un metodo come questo:

loadFile(int DocId, string PathToSaveFile); 

Purtroppo la data dll non mi forniscono un metodo per fornire il file richiesto come un array di byte o qualsiasi tipo di flusso. Ora la mia domanda, è possibile con C# per creare una sorta di percorso virtuale che in realtà non esiste nello storage secondario. Invece tutti i bit e i byte scritti in questo percorso vengono inoltrati a me in un flusso? L'obiettivo della mia intenzione è aumentare le prestazioni in quanto non è necessario scrivere dati su un disco rigido.

Ho già cercato molto, ma in realtà non conosco le parole chiave che devo cercare. Forse qualcuno può darmi un suggerimento o semplicemente dirmi che non è affatto possibile.

+1

un server WEBDAV? Per esempio, http://www.webdavsystem.com/ – I4V

+0

Nota a margine: "aumenta le prestazioni perché non devo scrivere dati su un disco rigido". - richiede di pianificare molto bene l'utilizzo della memoria/del disco. Altrimenti finirai con un numero maggiore di dati che possono essere ragionevolmente contenuti nella memoria fisica della tua macchina e invece di migliorare le prestazioni avrai un codice più lento e molto più complicato. Interessante da scrivere, ma non necessario più veloce. –

risposta

2

Dipenderà in parte da come la libreria aprirà il file e leggerà il file. Se utilizza CreateFile, esiste la possibilità che tu possa fornire l'accesso tramite una named pipe. Il percorso di una named pipe può essere specificato utilizzando \\.\pipe\PipeNameHere. In C# è possibile utilizzare NamedPipeServerStream.

Tuttavia, penso che le probabilità che l'applicazione client sia compatibile con questo sono relativamente ridotte e suggerirei di creare un RAM drive che sarà più facile da implementare ed è più probabile che funzioni. Un'unità RAM apparirà come una normale unità disco. È possibile salvare e caricare file su di esso, ma è tutto fatto in memoria.

Problemi correlati