如何从ULONGLONG正确填充WIN32_FIND_DATA结构

时间:2012-10-27 15:24:07

标签: winapi visual-c++

如果我拥有的文件大小为ULONGLONG字节,如何正确设置 WIN32_FIND_DATA 结构的 nFileSizeHigh nFileSizeLow 组件。

直接转换会导致编译器抱怨可能的数据丢失。

WIN32_FIND_DATA wfd;
wfd.nFileSizeLow = (DWORD)totalBytes;

1 个答案:

答案 0 :(得分:2)

警告是准确的,你试图在32磅的戳中填充64只猪。这样做是这样的:

ULONGLONG size = something;
wfd.nFileSizeHigh = size >> 32;
wfd.nFileSizeLow = size & 0xffffffffUL;

请注意,WIN32_FIND_DATA通常只能由FindFirstFile和FindNextFile()填充。