我想使用 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);
但还是一无所获。
我该如何处理?