VB.NET - Как правильно передать подмножество байтового буфера в файл? - PullRequest
0 голосов
/ 07 декабря 2011

Я обеспокоен тем, что этот код копирует байты во временный буфер перед записью непосредственно в файл.

Мне кажется, что должен быть какой-то метод копирования байтов непосредственно из хвостовой части основного буфера непосредственно в файл.

'this code copies all bytes starting at integer index from the main buffer into a new file: ga.exe

'declare temporary buffer
Dim EXEBytes(bytes.Count - index) As Byte

'copy subset of bytes over, starting at index 
System.Buffer.BlockCopy(bytes, index, EXEBytes, 0, bytes.Count - index)

'write bytes from temporary array into file
File.WriteAllBytes(Server.MapPath("/BIN/ga.exe"), EXEBytes)

Есть идеи?

1 Ответ

2 голосов
/ 07 декабря 2011

Вам бы лучше использовать поток, я считаю:

Public Sub WriteFile(bytes As Byte(), index As Integer)
    Using oNewStream As IO.FileStream = IO.File.Open(Server.MapPath("/BIN/ga.exe"), IO.FileMode.Create)
        If oNewStream IsNot Nothing Then
            oNewStream.Write(bytes, index, bytes.Count - index)
            oNewStream.Close()
        End If
    End Using
End Sub
...