Я новичок в C#, и мой босс хочет, чтобы я исследовал исключение OutOfMemory
. Код, который бросает исключение ниже конкретно первая строка, если файл большой (> 50Мб):Большой файл и OutOfMemoryException
byte[] fileBytes = ws.getFile(f.FileId, f.Version); // This line gets the file from a webservice.
File.WriteAllBytes(Path.Combine(folder, f.FileId.ToString("0")), fileBytes);
Я где-то читал, что использование byte[]
не является хорошей идеей для больших файлов. может помочь вам?
В чем заключалась задача? Вам действительно нужно прочитать весь файл в памяти? – zerkms
Вы наносите гвоздь на голову, не читайте все сразу в памяти. Это то, для чего используются потоки. Скопируйте 1 кусок за раз. Существует не так много другого, что кто-либо может предложить, если вы не разделяете код внутри метода 'ws.getFile' – Igor
Привет, Zerkms. Задача состоит в том, чтобы читать файлы из CMS (case360, который предоставляет услугу getFile, чтобы другие приложения могли читать файлы из), затем конвертировать/объединять файлы в новый файл PDF и хранить их в CMS. Я согласен загрузить большие файлы в память, это не очень хорошая идея, так что вы можете расширить поток/кусок, пожалуйста? – Greg