首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

请教有人知道怎么读取大内存的数据呢

2014-01-17 
请问有人知道如何读取大内存的数据呢?我有个需求,想要读取backup gpt的内容,可是它存储在硬盘扇区的最后面

请问有人知道如何读取大内存的数据呢?
我有个需求,想要读取backup gpt的内容,可是它存储在硬盘扇区的最后面几个扇区里。

我试了几个办法,一是想用SetFilePointer(DiskHandle, -(int)mylength, IntPtr.Zero, FILE_END)将指针指向文件末尾,可是这读取的却是第0个扇区的内容。
还有个笨方法,每次循环一个扇区,然后移动光标,可是这个方法不仅效率有问题,执行结果也有问题。

我听说对于这种大内存的数据,有什么高低位的算法可以解决,可就是不知道高地位怎么算?

我来举个例子,假设我要读取30869504个扇区的内容(每个扇区的内容是512个byte),我该怎么做呢?

[解决办法]
SetFilePointer应该可以,问题是你的偏移地址不能是32bit的int,否则只能移动2GB。

热点排行