Datei in Datatable speichern (Visual Basic 2005)

Hallo,

ich programmiere zurzeit mit Visual Basic. Nun stehe ich schon seit einiger Zeit vor einem Problem.

Ich möchte eine Datei (z.B. *.doc | *.exe | *.mp3 | *.avi …) in ein Datatable übergeben.

Es soll also nicht der Pfad zu der Datei, sonder die Datei selbst übergeben werden!

Meine Fragen sind nun:

Wie wandle ich die Datei um; und in welches Format?
Welchen Typ muss ich der Spalte (in der Datatable) zuweisen?

Vielen Dank im Voraus.

Hi!
Dazu musst Du zunächst den Inhalt der Datei einlesen (z.B. per FileStream.Read()) und dann z.B. als Byte-Array übergeben.
Der Typ wäre also in diesem Fall „System.Byte()“.

Gruß,
Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Zunächst einmal, vielen Dank für die schnelle Antwort!!

Ich habe nun folgenden Code programmiert:

Dim Tabelle As DataTable = New DataTable()
Dim Datei As DataColumn = New DataColumn()

Datei.DataType = System.Type.GetType(„System.Byte“)
Datei.ColumnName = „Datei“
Tabelle.Columns.Add(Datei)

Dim Stream As FileStream
Dim bytes() As Byte = Nothing

Stream = New FileStream(„Pfad“, FileMode.Open)

ReDim bytes(Stream.Length)

Dim row As DataRow = Tabelle.NewRow()
row.Item(0) = Stream.Read(bytes, 0, Stream.Length)
Tabelle.Rows.Add(row)

Ob ich dem Item(0) den richtigen Wert zugewiesen habe, bin ich mir noch nicht sicher. Ich wüsste aber auch nicht wie das sonst funktionieren sollte.

Führe ich das Programm aus, erscheint die Meldung:
„Der Wert für ein unsigniertes Byte war zu groß oder zu klein. konnte nicht in der Datei-Spalte gespeichert werden. Erwarteter Typ: Byte.“
Wenn ich anstatt Byte, Object verwende, funktioniert es.

Eine neue Frage, die sich mir stellte, ist diese:
Wie kann ich die Datei (nachdem sie in eine Binärdatei umgewandelt wurde) mit dem entsprechenden Programm (z.B. Word | Windows Media Player …) wieder öffnen?

Muss ich die Datei so auslesen?
Dim Stream As FileStream
Stream = New FileStream(Tabelle.Rows(0).Item(0), FileMode.Open)