Laden...

ByteArray von großen Files erhalten -> System.outof.Memory.Exception

Erstellt von Destiel vor 10 Jahren Letzter Beitrag vor 10 Jahren 1.025 Views
D
Destiel Themenstarter:in
3 Beiträge seit 2013
vor 10 Jahren
ByteArray von großen Files erhalten -> System.outof.Memory.Exception

hi,
brauch etwas hilfe:

und zwar möchte ich Files einlesen können und den Inhalt als in einem ByteArray speichern.
Das Problem ist, dass ich dabei habe ist die Größe der Files (im GB Bereich)

für kleine Dateien ist das kein Problem, jedoch für große nicht ...

system.outof.memory.exception

ich denke das es daran liegt das der dritte Parameter der Filestream.Read Methode
ein int Wert ist und der Wertebereich von int nicht für große Files ausreicht

gibts eine einfache Möglichkeit an die Bytes des Files zu kommen?

ich habe schon mit dem offset und count der Read Methode rumzuspielen
aber dann muss ich die einzelnen byteArrays zu einem großen Array zusammenfassen ... und da kommt wieder das Problem mit dem out of memory


FileStream inFile = new FileStream(path, FileMode.Open, FileAccess.Read);
byte[] byteArray= new byte[inFile.Length];
inFile.Read(byteArray, 0, (int)inFile.Length);

F
10.010 Beiträge seit 2004
vor 10 Jahren

ich denke das es daran liegt das der dritte Parameter der Filestream.Read Methode
ein int Wert ist und der Wertebereich von int nicht für große Files ausreicht

Falsch gedacht.
Du hast unter Win32 nicht mehr als ca 1.3 GB speicher und auch unter 64Bit keinen zusammenhängenden speicher grösser 2GB.
Du kannst einfach keine Dateien im GB bereich in den Speicher laden.

Was soll das denn werden, das Du soetwas versuchen willst?

D
Destiel Themenstarter:in
3 Beiträge seit 2013
vor 10 Jahren

ok, danke

gibts keine andere möglichkeit?

brauche das bytearray um diese kryptographisch zu verschlüsslen/entschlüsseln

1.346 Beiträge seit 2008
vor 10 Jahren

Ja, teilweise laden und damit arbeiten

F
10.010 Beiträge seit 2004
vor 10 Jahren

Dafür gibt es die Crypto Streams.