這是一個非常有趣的問題。我調試它在Win 7 64位下降到COMCTL32.DLL ListBox_DirHandler彙編代碼,並發現,Windows正在做這樣的事情(只是一些簡單的代碼):
// attr is the low word of the parameter passed to CComboBox::Dir.
attr &= FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_DIRECTORY|FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_NORMAL;
attr |= FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_READONLY;
WIN32_FIND_DATA finddata;
FindFirstFile(..., &finddata)
while(...) {
if(finddata.dwFileAttributes == FILE_ATTRIBUTE_COMPRESSED)
finddata.dwFileAttributes = FILE_ATTRIBUTE_NORMAL;
if(finddata.dwFileAttributes & attr) {
// some more checks and then might add the file name to the control;
}
FindNextFile(..., &finddata);
}
的問題是,你的文件與finddata.dwFileAttributes==FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
返回。在函數的入口被改變以便它永遠不會有FILE_ATTRIBUTE_NOT_CONTENT_INDEXED被設置,所以if在循環內永遠不會是真實的,並且文件名永遠不會被添加到控件中。
對不起,但據我所見,你將不得不等待MS bugfix或自己做這項工作。