簡體   English   中英

大於2GB的文件的System.IO.File.ReadAllBytes

[英]System.IO.File.ReadAllBytes for file larger than 2GB

我有一個大文件,需要將其復制到內存中以進行進一步處理。 該軟件適用於小於2GB的文件,但是只要它們超過此限制,我就會得到一個例外,即ReadAllBytes僅支持小於2GB的文件。

byte[] buffer = System.IO.File.ReadAllBytes(file); // exception if file > 2GB

將大於2GB的文件復制到內存的最快方法是什么?

該進程已經是64位,並且標志gcAllowVeryLargeObjects已經設置。

我懷疑您可以執行比內存映射文件http://msdn.microsoft.com/zh-cn/library/system.io.memorymappedfiles.memorymappedfile(v=vs.110).aspx更快的任何操作。

using ( var file = MemoryMappedFile.CreateFromFile( "F:\\VeryLargeFile.data" ) )
{
}

然后,您可以使用CreateViewAccessor或CreateViewStream來處理數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM