home *** CD-ROM | disk | FTP | other *** search
/ Launch & Play / spustahrej2.iso / Egoboo / code / win-file.c < prev   
Encoding:
C/C++ Source or Header  |  2001-12-08  |  4.8 KB  |  174 lines

  1. // win-file.c
  2.  
  3. // Egoboo, Copyright (C) 2000 Aaron Bishop
  4.  
  5. #include "egoboo.h"
  6.  
  7. //---------------------------------------------------------------------------------------------
  8. //File Routines-------------------------------------------------------------------------------
  9. //---------------------------------------------------------------------------------------------
  10.  
  11. // Had to revert back to prog x code to prevent import/skin bug
  12.  
  13. void make_directory(char *dirname)
  14. {
  15.     // ZZ> This function makes a new directory
  16.     _mkdir(dirname);
  17. }
  18.  
  19. //---------------------------------------------------------------------------------------------
  20. void remove_directory(char *dirname)
  21. {
  22.     // ZZ> This function removes a directory
  23.     _rmdir(dirname);
  24. }
  25.  
  26. //---------------------------------------------------------------------------------------------
  27. void delete_file(char *filename)
  28. {
  29.     // ZZ> This function deletes a file
  30.     remove(filename);
  31. }
  32.  
  33. //---------------------------------------------------------------------------------------------
  34. void copy_file(char *source, char *dest)
  35. {
  36.     // ZZ> This function copies a file on the local machine
  37.     FILE* fileread;
  38.     FILE* filewrite;
  39.     char cTmp;
  40.  
  41.  
  42.     fileread = fopen(source, "rb");
  43.     if(fileread)
  44.     {
  45.         filewrite = fopen(dest, "wb");
  46.         if(filewrite)
  47.         {
  48.             while(fscanf(fileread, "%c", &cTmp)!=EOF)
  49.             {
  50.                 fprintf(filewrite, "%c", cTmp);
  51.             }
  52.             fclose(filewrite);
  53.         }
  54.         fclose(fileread);
  55.     }
  56. }
  57.  
  58. //---------------------------------------------------------------------------------------------
  59. void delete_directory(char *dirname)
  60. {
  61.     // ZZ> This function deletes all files in a directory,
  62.     //     and the directory itself
  63.     char searchname[128];
  64.     char filename[128];
  65.     WIN32_FIND_DATA wfdData;
  66.     HANDLE hFind;
  67.     BOOL keeplooking;
  68.  
  69.  
  70.     // Search for all files
  71.     sprintf(searchname, "%s\\*.*", dirname);
  72.     hFind = FindFirstFile(searchname, &wfdData);
  73.     keeplooking = 1;
  74.     if(hFind != INVALID_HANDLE_VALUE)
  75.     {
  76.         while(keeplooking)
  77.         {
  78.             sprintf(filename, "%s\\%s", dirname, wfdData.cFileName);
  79.             delete_file(filename);
  80.             keeplooking = FindNextFile(hFind, &wfdData);
  81.         }
  82.     }
  83.     remove_directory(dirname);
  84. }
  85.  
  86. //---------------------------------------------------------------------------------------------
  87. void copy_directory(char *dirname, char *todirname)
  88. {
  89.     // ZZ> This function copies all files in a directory
  90.     char searchname[128];
  91.     char fromname[128];
  92.     char toname[128];
  93.     WIN32_FIND_DATA wfdData;
  94.     HANDLE hFind;
  95.     BOOL keeplooking;
  96.  
  97.  
  98.     // Search for all files
  99.     sprintf(searchname, "%s\\*.*", dirname);
  100.     hFind = FindFirstFile(searchname, &wfdData);
  101.     keeplooking = 1;
  102.     if(hFind != INVALID_HANDLE_VALUE)
  103.     {
  104.         // Make the new directory
  105.         make_directory(todirname);
  106.         // Copy each file
  107.         while(keeplooking)
  108.         {
  109.             sprintf(fromname, "%s\\%s", dirname, wfdData.cFileName);
  110.             sprintf(toname, "%s\\%s", todirname, wfdData.cFileName);
  111.             copy_file(fromname, toname);
  112.             keeplooking = FindNextFile(hFind, &wfdData);
  113.         }
  114.     }
  115. }
  116.  
  117. //---------------------------------------------------------------------------------------------
  118. void empty_import_directory(void)
  119. {
  120.     // ZZ> This function deletes all the TEMP????.OBJ subdirectories in the IMPORT directory
  121.     int cnt;
  122.     char filename[256];
  123.  
  124.     cnt = 0;
  125.     while(cnt < MAXIMPORT)
  126.     {
  127.         sprintf(filename, "IMPORT\\TEMP%04d.OBJ", cnt);
  128.         delete_directory(filename);
  129.         cnt++;
  130.     }
  131. }
  132.  
  133.  
  134. //---------------------------------------------------------------------------------------------
  135. //Directory Functions--------------------------------------------------------------------------
  136. //---------------------------------------------------------------------------------------------
  137. WIN32_FIND_DATA win32_wfdData;
  138. HANDLE win32_hFind;
  139.  
  140. //---------------------------------------------------------------------------------------------
  141. // Read the first directory entry
  142. char *DirGetFirst(char *search)
  143. {
  144.   win32_hFind = FindFirstFile(search, &win32_wfdData);
  145.   return win32_wfdData.cFileName;
  146. }
  147.  
  148. //---------------------------------------------------------------------------------------------
  149. // Read the next directory entry (NULL if done)
  150. char *DirGetNext(void)
  151. {
  152.   if(!FindNextFile(win32_hFind, &win32_wfdData)) {
  153.     return NULL;
  154.   }
  155.   return win32_wfdData.cFileName;
  156. }
  157.  
  158. //---------------------------------------------------------------------------------------------
  159. // Close anything left open
  160. void DirClose()
  161. {
  162.   FindClose( win32_hFind );
  163. }
  164.  
  165. int ClockGetTick()
  166. {
  167.   return(GetTickCount());
  168. }
  169.  
  170. int DirGetAttrib(char *fromdir)
  171. {
  172.   return(GetFileAttributes(fromdir));
  173. }
  174.