如果我拥有的文件大小为ULONGLONG字节,如何正确设置 WIN32_FIND_DATA 结构的 nFileSizeHigh 和 nFileSizeLow 组件。
直接转换会导致编译器抱怨可能的数据丢失。
WIN32_FIND_DATA wfd;
wfd.nFileSizeLow = (DWORD)totalBytes;
答案 0 :(得分:2)
警告是准确的,你试图在32磅的戳中填充64只猪。这样做是这样的:
ULONGLONG size = something;
wfd.nFileSizeHigh = size >> 32;
wfd.nFileSizeLow = size & 0xffffffffUL;
请注意,WIN32_FIND_DATA通常只能由FindFirstFile和FindNextFile()填充。