我在对一个文件进行压缩的时候,如果这个文件过大比如说2G,那么就会在这句话中报错:
FileStream fs = File.OpenRead(file);
byte[] buffer = new byte[fs.Length];
其中fs.Length=1081126835 程序走到
byte[] buffer = new byte[fs.Length];这句话时回抛出System.OutOfMemoryException异常
请问该怎么解决这样的问题,是不是可以采取分段压缩的方法,单分段压缩的方法不是很懂还请高手帮帮忙呀??
不要用 .net 平台提供的 gzip ,那个不是用于压缩文件的。
用 SharpZipLib
这个是一个专门用于压缩文件的开源组件,参见下面文章,你也可以到网上搜,这个组件
很有名
http://www.cnblogs.com/windzhang/archive/2009/08/06/Zip_2009_8_6.html
http://www.cnblogs.com/jcgh/archive/2010/08/24/1807302.html