C#で大きな.ISOファイルを操作したい。それを操作し、ファイルを追加および削除し、そこから新しいISOを作成したいと思います。DiscUtilsライブラリを試しましたが、動作させることができないようです。(標準のC#関数を使用して)ロードすると、常にOutOfMemoryExceptionが発生します。これは600MBのISO(多かれ少なかれ)であり、私は2GBのRAMを持っています。
私は現在これを行っています:
FileStream fs = new FileStream(FileDialog.FileName, FileMode.Open, FileAccess.Read);
BinaryReader b = new BinaryReader(fs);
byte[] buffer = b.ReadBytes((int)fs.Length);
int count; // actual number of bytes read
int sum = 0;
while ((count = b.Read(buffer, (int)sum, (int)(buffer.Length - sum))) > 0)
{
sum = sum + count; // sum is a buffer offset for next reading
}
「byte[]buffer = b.ReadBytes((int)fs.Length);」でOutOfMemoryExceptionをスローします。ISOにあるものを削除/追加するとき、それをパーツにロードできますか、それともファイル全体である必要がありますか?
UPDATE1:バッファを次のように制限しました:
FileStream fs = new FileStream(FileDialog.FileName, FileMode.Open, FileAccess.Read,FileShare.Read,4096);
しかし、それでも何もありません。
どうすればこれを操作できますか?