Я хочу работать с большим файлом .ISO на С#. Я хочу манипулировать им, добавляя и удаляя из него файлы, и создавать из него новый iso. Я попробовал библиотеку DiscUtils, но, похоже, я не могу заставить ее работать. Когда я загружаю его (используя стандартные функции С#), я всегда получаю исключение OutOfMemoryException. Это 600 МБ ISO (более или менее), и у меня 2 ГБ оперативной памяти.
В настоящее время я делаю это:
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
}
Он выдает OutOfMemoryException в "byte[] buffer = b.ReadBytes((int)fs.Length);". Когда я удаляю/добавляю материал в ISO, я могу загружать его по частям или это должен быть весь файл?
ОБНОВЛЕНИЕ 1: я ограничил буфер:
FileStream fs = new FileStream(FileDialog.FileName, FileMode.Open, FileAccess.Read,FileShare.Read,4096);
Но все равно ничего.
Как я могу работать с этим?
byte[]
или вы хотите прочитать содержимое файла .ISO? - person dtb   schedule 14.11.2012Stream
экземпляру MD5. - person dtb   schedule 14.11.2012