大文件和 OutOfMemoryException

Large file and OutOfMemoryException

我是 C# 的新手,我的老板要我调查一个 OutOfMemory 异常。如果文件很大 (>50MB),则抛出异常的代码具体在第一行下方:

     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[] 对于大文件不是一个好主意。 可以帮忙吗?

目前,您的代码正在下载整个文件并将其粘贴到堆上,然后写入本地文件。

为避免 OutOfMemoryException,您需要边写边写磁盘,而不是等到最后。您可以通过从 web 服务获取文件作为流、打开一个新的文件流来写入和复制内容来实现这一点。