Changeset 48


Ignore:
Timestamp:
10/12/2007 10:08:21 AM (7 years ago)
Author:
lowjoel
Message:

-Refactored the File Lock Resolver code a bit
-The Launcher must terminate if the erase-on-restart failed
-Fixed a few stuff in the README

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/shared/FileHelper.cpp

    r27 r48  
    220220} 
    221221 
    222  
    223222bool PatternMatch(const char* s, const char* mask) 
    224223{ 
     
    234233    } 
    235234} 
    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.