1

当我只有 ULONGLONG 字节的文件大小时,如何正确设置WIN32_FIND_DATA结构的nFileSizeHighnFileSizeLow组件。

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

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

1 回答 1

2

警告是准确的,您正试图将 64 只小猪塞进 32 磅重的戳中。改为这样做:

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

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

于 2012-10-27T17:19:39.137 回答