摘要:
对于一些小文件,用普通的文件流就可以很好的解决,可是对于超大文件,比如2G或者更多,文件流就不行了,所以要使用API的内存映射的相关方法,即使是内存映射,也不能一次映射全部文件的大小,所以必须采取分块映射,每次处理一小部分。先来看几个函数CreateFile :打开文件GetFileSize : 获取文件尺寸CreateFileMapping :创建映射MapViewOfFile :映射文件看MapViewOfFile的帮助,他的最后两个参数都需要是页面粒度的整数倍,一般机器的页面粒度为64k(65536字节),而我们实际操作中,一般都不是这样规矩的,任意位置,任意长度都是可能的,所以就要做一 阅读全文
摘要:
-procedure SplitFile(FileName : TFileName; FilesByteSize : Integer) ;// FileName == file to split into several smaller files// FilesByteSize == the size of files in bytesvarfs, ss: TFileStream;cnt : integer;SplitName: String;beginfs := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite) ;tr 阅读全文