C#では、FileStream
のメソッドRead / Write/Seekがinteger
パラメーターを取り込みます。以前の投稿で、プロセスに割り当てられた仮想メモリよりも大きいファイルを読み取り/書き込みするための優れたソリューションを見てきました。
このソリューションは、データを最初から最後まで書き込みたい場合に機能します。しかし、私の場合、受信しているデータのチャンクは特定の順序ではありません。
2GB未満のファイルで機能するコードがあります:
private void WriteChunk(byte[] data, int position, int chunkSize, int count, string path)
{
FileStream destination = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write);
BinaryWriter writer = new BinaryWriter(destination);
writer.Seek((int) (position*chunkSize), SeekOrigin.Begin);
writer.Write(data, 0, count);
writer.Close();
}
2GBを超えるファイルにチャンクを探して書き込む方法はありますか?