Changeset 48
- Timestamp:
- 10/12/2007 10:08:21 AM (6 years ago)
- File:
-
- 1 edited
-
trunk/shared/FileHelper.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/shared/FileHelper.cpp
r27 r48 220 220 } 221 221 222 223 222 bool PatternMatch(const char* s, const char* mask) 224 223 { … … 234 233 } 235 234 } 236 237 BOOL findMaskedElements(CString strMatch, CStringArray& saFiles, CStringArray& saDir)238 {239 HANDLE hFind;240 WIN32_FIND_DATAA wfdData;241 CString strPattern(_T(""));242 CString strBeforePattern(_T("")), strAfterPattern(_T(""));243 CString strPath(_T(""));244 CStringArray saTmpFiles;245 CStringArray saTmpDirs;246 TCHAR szFolder[_MAX_PATH];247 CString strFName = _T("");248 249 if (strPattern.IsEmpty()) {250 if (GetCurrentDirectory(_MAX_PATH, szFolder) != 0) {251 strPattern = szFolder;252 if (strPattern[strPattern.GetLength() - 1] != '\\') {253 strPattern += "\\";254 }255 }256 }257 strMatch.MakeUpper();258 strPattern=findPattern(strMatch,strBeforePattern,strAfterPattern);259 hFind = FindFirstFile(strBeforePattern+"*", &wfdData);260 if (hFind != INVALID_HANDLE_VALUE) {261 do {262 if (ISNT_SUBFOLDER(wfdData.cFileName)) continue;263 strFName = wfdData.cFileName;264 strFName.MakeUpper();265 if (PatternMatch(strFName,strPattern))266 {267 strPath = strBeforePattern + strFName;268 if (bitSet(wfdData.dwFileAttributes, FILE_ATTRIBUTE_DIRECTORY))269 {270 if (strAfterPattern.IsEmpty()) saDir.Add(strPath+"\\");271 CString strTmp;272 if (strAfterPattern.IsEmpty()) strTmp="\\";273 else strTmp=strAfterPattern;274 findMaskedElements(strPath + strTmp , saTmpFiles, saTmpDirs);275 if (!saTmpDirs.IsEmpty()) saDir.InsertAt(saDir.GetUpperBound()+1,&saTmpDirs);276 saTmpDirs.RemoveAll();277 if (!saTmpFiles.IsEmpty()) saFiles.InsertAt(saFiles.GetUpperBound()+1,&saTmpFiles);278 saTmpFiles.RemoveAll();279 }280 if (strAfterPattern.IsEmpty()&&!bitSet(wfdData.dwFileAttributes, FILE_ATTRIBUTE_DIRECTORY))281 {282 saFiles.Add(strPath);283 }284 }285 }while(FindNextFile(hFind, &wfdData));286 }287 FindClose(hFind);288 return TRUE;289 }
Note: See TracChangeset
for help on using the changeset viewer.
