Tjipp, Det ser lite för lätt ut det där, du läser och skriver 2k i taget men tar inte hand om "slasket" som borde bil i slutet av filen. Debugga din pekare och kolla om du verkligen stoppar där du skall för du borde egentligen ta reda på storleken före du börjar skriva för att läsa och skriva rätt antal tecken till fil och från fil. Ah problemet är löst. Det visade sig att varje läsning från streamen inte returnerade 2k, men jag skrev ändå 2k till filen varje iteration.För mycket binärdata
Jag har en VB-applikation som hämtar en bild från en webbsida(skickas via Response.Transmitfile).
Följande kod använder jag för att hämta filen:
Dim oStream As IO.Stream = oWebClient.OpenRead(Appsettings.WebURL)
Dim bBuffer(2048) As Byte, iBytecount As Integer, iLoop As Integer = 0
Dim oFile As New FileStream(IO.Directory.GetCurrentDirectory & "\order" & "\hejhej.zip", FileMode.CreateNew, FileAccess.Write)
Dim lTotalBytes As Long = 0
Do
iBytecount = oStream.Read(bBuffer, 0, 2048)
lTotalBytes = lTotalBytes + iBytecount
oFile.Write(bBuffer, 0, 2048)
Loop While iBytecount > 0
Filen jag skickar är exakt lika stor som lTotalBytes, men filen som jag skriver till lokalt blir många tusen kB för stor.
Vad kan vara fel?
/RickardSv: För mycket binärdata
Sv: För mycket binärdata
Jag ändrade till
oFile.Write(bBuffer,0,iBytecount)
Tackar.
Rickard