Я решил, как читать большой файл в файл меньшего размера, но только если я начну с самого начала.Я хотел бы иметь возможность читать от середины до произвольной точки.Я понимаю, это звучит безумно, но у меня есть свои причины.Я не получаю ничего записанного в файл, когда я по какой-то причине устанавливаю позицию больше 0.В итоге я получу файл, полный значений NULL.
Я думал, что в файл будет записано 300 КБ из 2,5 МБ.
public static FileStream stream = new FileStream(@"file.dat", FileMode.Open, FileAccess.Read);
public static FileStream shortFile = null;
int limit = 300000;
public MainWindow()
{
byte[] block = new byte[limit];
using (FileStream fs = File.Create("tempfile.dat"))
{
var newposition = stream.Seek(2500000, SeekOrigin.Begin);
stream.Position = newposition;
while (stream.Read(block, 0, limit) > 0 && stream.Position <= limit)
{
fs.Write(block, 0, block.Length);
}
}
InitializeComponent();
}