请问有人知道如何读取大内存的数据呢?
我有个需求,想要读取backup gpt的内容,可是它存储在硬盘扇区的最后面几个扇区里。
我试了几个办法,一是想用SetFilePointer(DiskHandle, -(int)mylength, IntPtr.Zero, FILE_END)将指针指向文件末尾,可是这读取的却是第0个扇区的内容。
还有个笨方法,每次循环一个扇区,然后移动光标,可是这个方法不仅效率有问题,执行结果也有问题。
我听说对于这种大内存的数据,有什么高低位的算法可以解决,可就是不知道高地位怎么算?
我来举个例子,假设我要读取30869504个扇区的内容(每个扇区的内容是512个byte),我该怎么做呢?
------解决方案--------------------SetFilePointer应该可以,问题是你的偏移地址不能是32bit的int,否则只能移动2GB。