diff options
author | Prasanth Ullattil <prasanth.ullattil@nokia.com> | 2010-09-22 12:45:32 +0200 |
---|---|---|
committer | Prasanth Ullattil <prasanth.ullattil@nokia.com> | 2010-09-22 13:26:50 +0200 |
commit | c798fc3bf3ed8551185d0914f25dc7ed6fd123dd (patch) | |
tree | cedeac76fcde64cf0ce63cdba41b3ff0b26cf520 /src/corelib/io/qfilesystemiterator_win.cpp | |
parent | 49d5e73b52a8830f88041f0c1e726133e791f999 (diff) |
Fix QDirIterator on Windows XP.
The find option "FindExInfoBasic" which queries only the long file
nmae is available only on Windows 7 and above. All other version have to
use the "FindExInfoStandard" option which queries both short and long
file names.
Reviewed-by: Joao
Diffstat (limited to 'src/corelib/io/qfilesystemiterator_win.cpp')
-rw-r--r-- | src/corelib/io/qfilesystemiterator_win.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/corelib/io/qfilesystemiterator_win.cpp b/src/corelib/io/qfilesystemiterator_win.cpp index 373a50a653..40501996f4 100644 --- a/src/corelib/io/qfilesystemiterator_win.cpp +++ b/src/corelib/io/qfilesystemiterator_win.cpp @@ -85,17 +85,15 @@ bool QFileSystemIterator::advance(QFileSystemEntry &fileEntry, QFileSystemMetaDa if (findFileHandle == INVALID_HANDLE_VALUE && !uncFallback) { haveData = true; + int infoLevel = 0 ; // FindExInfoStandard; DWORD dwAdditionalFlags = 0; - if (QSysInfo::windowsVersion() >= QSysInfo::WV_WINDOWS7) + if (QSysInfo::windowsVersion() >= QSysInfo::WV_WINDOWS7) { dwAdditionalFlags = 2; // FIND_FIRST_EX_LARGE_FETCH + infoLevel = 1 ; // FindExInfoBasic; + } int searchOps = 0; // FindExSearchNameMatch if (onlyDirs) searchOps = 1 ; // FindExSearchLimitToDirectories -#if !defined(Q_OS_WINCE) - int infoLevel = 1 ; // FindExInfoBasic; -#else - int infoLevel = 0; // FindExInfoStandard; -#endif findFileHandle = FindFirstFileEx((const wchar_t *)nativePath.utf16(), FINDEX_INFO_LEVELS(infoLevel), &findData, FINDEX_SEARCH_OPS(searchOps), 0, dwAdditionalFlags); if (findFileHandle == INVALID_HANDLE_VALUE) { |