我有一个大文件需要复制到内存中进行进一步处理。对于小于2GB的文件,软件可以正常工作,但是一旦超过这个限制,就会出现异常,提示ReadAllBytes仅支持小于2GB的文件。
byte[] buffer = System.IO.File.ReadAllBytes(file); // exception if file > 2GB
如何最快地将大于2GB的文件复制到内存中?
进程已经是64位的,并且标志gcAllowVeryLargeObjects已经设置。
我有一个大文件需要复制到内存中进行进一步处理。对于小于2GB的文件,软件可以正常工作,但是一旦超过这个限制,就会出现异常,提示ReadAllBytes仅支持小于2GB的文件。
byte[] buffer = System.IO.File.ReadAllBytes(file); // exception if file > 2GB
如何最快地将大于2GB的文件复制到内存中?
进程已经是64位的,并且标志gcAllowVeryLargeObjects已经设置。
我怀疑你无法做得比内存映射文件更快。
http://msdn.microsoft.com/en-us/library/system.io.memorymappedfiles.memorymappedfile(v=vs.110).aspxusing ( var file = MemoryMappedFile.CreateFromFile( "F:\\VeryLargeFile.data" ) )
{
}