gpt4 book ai didi

c - GetFileSizeEx 在 System32 目录上返回不正确的值

转载 作者:太空宇宙 更新时间:2023-11-04 01:06:23 25 4
gpt4 key购买 nike

我遇到了一个关于 GetFileSize 和 GetFileSizeEx API 的非常奇怪的问题。

除了来自 System32 目录的文件外,这两个函数都适用于每个输入文件。

例如:

如果我在 calc.exe(在 System32 中)上使用其中一个 API,我将获得 776192 字节的返回值,即使它的实际大小是 918,528 字节!

System32 中的其他可执行文件(Regedit、calcs ..)也会发生这种情况。

GetFileSizeEx的返回值为TRUE,没有报错。

如果我将 calc.exe 复制到不同的目录(比如 C:\),API 会返回正确的字节数。

我猜 System32 目录中的文件是如何压缩的?

或类似的东西,GetFileSize API 返回其压缩大小,而不是实际大小。

有人知道为什么会这样吗?

我运行的是 Windows 7 SP1。

最佳答案

您在 c:\windows\system32 下请求文件,但您可能从 c:\windows\syswow64\ 获取文件。

在我的系统上,c:\windows\system32\下的 calc.exe 是 897KB。在 syswow64 下它是 758KB

在此处阅读有关文件系统重定向器的更多信息:

http://msdn.microsoft.com/en-us/library/windows/desktop/aa384187(v=vs.85).aspx

关于c - GetFileSizeEx 在 System32 目录上返回不正确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22393252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com