stoneharry

Untitled

Jun 25th, 2011
282
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.22 KB | None | 0 0
  1. void LuaEngine::ScriptLoadDir(char* Dirname, LUALoadScripts *pak)
  2. {
  3.     #ifdef WIN32
  4.         Log.Notice("LuaEngine", "Scanning Directory %s", Dirname);
  5.         HANDLE hFile;
  6.         WIN32_FIND_DATA FindData;
  7.         memset(&FindData,0,sizeof(FindData));
  8.  
  9.         char SearchName[MAX_PATH];
  10.            
  11.         strcpy(SearchName,Dirname);
  12.         strcat(SearchName,"\\*.*");
  13.  
  14.         hFile = FindFirstFile(SearchName,&FindData);
  15.         FindNextFile(hFile, &FindData);
  16.        
  17.         while( FindNextFile(hFile, &FindData) )
  18.         {
  19.             if( FindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ) //Credits for this 'if' go to Cebernic from ArcScripts Team. Thanks, you saved me some work ;-)
  20.             {
  21.                 strcpy(SearchName,Dirname);
  22.                 strcat(SearchName,"\\");
  23.                 strcat(SearchName,FindData.cFileName);
  24.                 ScriptLoadDir(SearchName, pak);
  25.             }
  26.             else
  27.             {
  28.                         string fname = Dirname;
  29.                         fname += "\\";
  30.                         fname += FindData.cFileName;
  31.  
  32.                     size_t len = strlen(fname.c_str());
  33.                       int i=0;
  34.                       char ext[MAX_PATH];
  35.                      
  36.                       while(len > 0)
  37.                       {  
  38.                        ext[i++] = fname[--len];
  39.                        if(fname[len] == '.')
  40.                    break;
  41.                   }
  42.                   ext[i++] = '\0';
  43.                   if ( !_stricmp(ext,"aul.") ) pak->luaFiles.insert(fname);
  44.             }
  45.         }
  46.       FindClose(hFile);
Advertisement
Add Comment
Please, Sign In to add comment