查找文件,然后按照文件扩展名过滤文件 /// 查找符合文件名的文件数目,排除文件夹 int COPWILL_FileDialog::OnFindFileCount( CString szFileName ) { int nFileSize=-1; WIN32_FIND_DATA fData; HANDLE fHandle; fData.dwFileAttributes= FILE_ATTRIBUTE_NORMAL; szFileName += _T(".*"); // 判断是否隐藏只读文件 if ( m_ofn.Flags&OFN_HIDEREADONLY ) { fData.dwFileAttributes |=FILE_ATTRIBUTE_READONLY; } fHandle = FindFirstFile( szFileName, &fData ); if ( fHandle==INVALID_HANDLE_VALUE ) { return nFileSize; } BOOL bIsDirectory; do { if ( (STRNCMP(fData.cFileName, _T("."),1 )==0) || (STRNCMP(fData.cFileName, _T(".."),2 )==0) ) { continue; } // 隐藏系统文件 if ( (fData.dwFileAttributes&FILE_ATTRIBUTE_HIDDEN)==FILE_ATTRIBUTE_HIDDEN ) { continue;; } bIsDirectory=fData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ; if ( !bIsDirectory ) { // 过滤文件扩展名 if ( !OnFilterFile(fData.cFileName )) { continue;; } nFileSize++; } } while ( FindNextFile(fHandle, &fData) ); FindClose(fHandle); return nFileSize; }