2013-06-01 3 views
0

Мне нужен способ потоковой записи из одного файла в другой в vb.net, чтобы все файлы не загружались в память. Вот то, что я хочу: Поток читает байты в файле 1 ---> поток пишет append байты в файл 2.vb.net - как передать файл в файл

Я буду работать с большими файлами, несколько GB, поэтому мне нужен самый эффективный способ сделать это, и не хотите загружать все содержимое файла в память.

ответ

2

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

Dim bytesRead As Integer 
    Dim buffer(4096) As Byte 
    Using inFile As New System.IO.FileStream("c:\some path\folder\file1.ext", IO.FileMode.Open, IO.FileAccess.Read) 
     Using outFile As New System.IO.FileStream("c:\some path\folder\file2.ext", IO.FileMode.Create, IO.FileAccess.Write) 
      Do 
       bytesRead = inFile.Read(buffer, 0, buffer.Length) 
       If bytesRead > 0 Then 
        outFile.Write(buffer, 0, bytesRead) 
       End If 
      Loop While bytesRead > 0 
     End Using 
    End Using 
+0

Большое спасибо, как я могу определить максимальное количество байтов для чтения? спасибо ... –

+0

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

+0

да, точно, я хочу остановиться после x количества байтов :) –

Смежные вопросы