关于 GetFileSize 和 GetFileSizeEx API,我遇到了一个非常奇怪的问题。
除了 System32 目录中的文件外,这两个函数都可以在每个输入文件上正常工作。
例如:
如果我在 calc.exe 上使用其中一个 API(在 System32 中),即使它的实际大小是 918,528 字节,我也会得到 776192 字节的返回值!
System32 中的其他可执行文件(Regedit、calcs ..)也会发生这种情况。
GetFileSizeEx的返回值为TRUE,不报错。
如果我将 calc.exe 复制到不同的目录(比如 C:\),API 会返回正确的字节数。
我的猜测是 System32 目录中的文件是如何压缩的?
或类似的东西,GetFileSize API 返回其压缩大小,而不是实际大小。
有谁知道为什么会这样?
我正在运行 Windows 7 SP1。