Vom memoryStream zur Ausführung ohne Umweg als File

milvus

Grünschnabel
Hallo,

folgendes Problem sucht eine Lösung. (Visual Basic .Net)

Ich speichere komplette Dateien in einer Datenbank (mysql) als BLOB und stelle sie in einem ListView-Element dar. Per Doppelklick sollen sie zur Ausführung gebracht werden. Das Lesen aus der DB und laden in einen MemoryStream ist kein Problem.
Gibt es einen eleganteren (direkten) Weg, um die Datei an den Explorer zu übergeben oder muss ich sie erst als File auf dem Laufwerk speichern und dann die Shell zur Ausführung auffordern?

Danke!
 
Hallo milvus!

Willkommen im Forum!

Gibt es einen eleganteren (direkten) Weg, um die Datei an den Explorer zu übergeben oder muss ich sie erst als File auf dem Laufwerk speichern und dann die Shell zur Ausführung auffordern?
Nein es gibt IMO keinen derartigen Weg, die Dateien direkt aus dem Speicher herraus auszuführen.
Kannst sie nur mithilfe eines FileStreams auf die Festflatte schreiben und sie danach viá Process.Start() ausführen.
 
Um was handelt es sich genau? Schreibst du da ausführbare Anwendungen in deine Datenbank oder willst du lediglich Images und dergleichen zur Anzeige bringen ohne diese temp. zu speichern?
 
In der Regel sind es Word-Dokument, bzw. Powerpoint-Präsentationen bzw. Excel-Mappen, die ich in der Datenbank ablege. Es kann auch mal ein Bild dabei sein. Das heißt, ich will die Office-Anwendung starten und das Dokument direkt aus dem Speicher übergeben.

Ich hoffe dadurch auf Performance-Gewinn (jedenfalls bei großen Dateien) und weniger Programmier-Aufwand.

Grüße, milvus.
 
Sorry cosmo,

habe mich für deine Antwort noch nicht bedankt.
Vermutlich hast Du recht, ich habe lange gegooglet
und keine Lösung gefunden.

Was heißt denn IMO?

Grüße, milvus
 
Hi milvus!

Es ist nicht möglich OfficeDokumente direkt aus dem Speicher herraus auzuführen.
  1. Weil die Änderungen ja auch irgend wohin zurück gespeichert werden müssen.
  2. Weil Office immer eine Dackupdatei für jedes geöffnete Dokument im selben Ordner anlegt.
  3. Office und somit auch Office-Interop dir gar nicht eine deratige Funktion anbietet.
Bilder hingegen kannst sie direkt aus dem Speicher laden. ZB so:
C#:
using System.IO;
[...]
MemoryStream memStream = new MemoryStream( bytesArray );
Image img = Image.FromStream( memStream );

Btw. IMO bedeutet in my opinion. Das ist einen gängige Internetabkürzung (Chat-Slang). -> :google:
 
Zuletzt bearbeitet:
Zurück