home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 May / PCWK5A99.ISO / Os2 / CLEARTMP.ZIP / Cleartmp / Source / Cleartmp.cpp next >
Encoding:
C/C++ Source or Header  |  1998-12-28  |  2.3 KB  |  91 lines

  1. #define INCL_VIO
  2. #define INCL_DOS
  3. #define INCL_DOSERRORS
  4.  
  5. #include <OS2.h>
  6. #include <Stdio.h>
  7. #include "FindRec.hpp"
  8.  
  9. // æΓαá¡á - É«ßß¿∩.
  10. #define RUSSIAN 866
  11.  
  12. // æΓαá¡á, ó ¬«Γ«α«⌐ αáí«ΓáÑΓ »α¿½«ªÑ¡¿Ñ.
  13. ULONG Code_page;
  14.  
  15. // éαѼѡ¡δ⌐ ¬áΓὫú.
  16. PCHAR Temporary_directory;
  17.  
  18. // ─── Äτ¿ßΓ¬á óαѼѡ¡δσ ¬áΓὫú«ó ───
  19.  
  20. VOID main( INT Parameters_count, CHAR* Parameters[] )
  21. {
  22.  // ôº¡áѼ ßΓαá¡π, ó ¬«Γ«α«⌐ αáí«ΓáÑΓ »α¿½«ªÑ¡¿Ñ.
  23.  ULONG Size_of_list = 0;
  24.  DosQueryCp( sizeof( Code_page ), &Code_page, &Size_of_list );
  25.  
  26.  // àß½¿ »áαá¼ÑΓαδ ¡Ñ ºáñá¡δ - ß««íΘÑ¡¿Ñ «í φΓ«¼.
  27.  if( Parameters_count < 2 )
  28.   {
  29.    // ÅÑτáΓáѼ ß««íΘÑ¡¿Ñ.
  30.    if( Code_page != RUSSIAN )
  31.     {
  32.      printf( "\nClearTMP is a tool for cleaning a temporary directories on a system startup." );
  33.      printf( "\nVersion: 1.1" );
  34.      printf( "\nUsage: ClearTMP <Temporary_directory>\n" );
  35.     }
  36.    else
  37.     {
  38.      printf( "\nÅα¿½«ªÑ¡¿Ñ ClearTMP »αÑñ¡áº¡áτÑ¡« ñ½∩ «τ¿ßΓ¬¿ óαѼѡ¡δσ ¬áΓὫú«ó »α¿ ºáúαπº¬Ñ" );
  39.      printf( "\nOS/2. êß»«½∞º«óá¡¿Ñ: ClearTMP <ÅπΓ∞>" );
  40.      printf( "\néÑαß¿∩: 1.1\n" );
  41.     }
  42.  
  43.    // é«ºóαáΓ.
  44.    return;
  45.   }
  46.  
  47.  // àß½¿ ñ½¿¡á »πΓ¿ í«½∞ΦÑ 10 íπ¬ó - ó«ºóαáΓ. éñαπú ¡áíÑαπΓ "C:"?
  48.  Temporary_directory = Parameters[ 1 ];
  49.  if( strlen( Temporary_directory ) < 10 )
  50.   {
  51.    // ÅÑτáΓáѼ ß««íΘÑ¡¿Ñ.
  52.    if( Code_page != RUSSIAN ) printf( "\nA path length must be longer than 10 letters.\nNote: \"ClearTMP C:\" command is not allowed.\n" );
  53.    else printf( "\n使¡á »πΓ¿ ñ«½ª¡á íδΓ∞ í«½∞ΦÑ 10.\né맮ó \"ClearTMP C:\" ¡Ñ αáºαÑΦÑ¡.\n" );
  54.  
  55.    // é«ºóαáΓ.
  56.    return;
  57.   }
  58.  
  59.  // ôí¿αáѼ "\" ó ¬«¡µÑ ßΓ᫬¿.
  60.  INT Length = strlen( Temporary_directory );
  61.  if( Temporary_directory[ Length - 1 ] == '\\' ) Temporary_directory[ Length - 1 ] = NULL;
  62.  
  63.  // ÅÑτáΓáѼ ß««íΘÑ¡¿Ñ.
  64.  if( Code_page != RUSSIAN ) printf( "Cleaning \"" );
  65.  else printf( "Äτ¿ßΓ¬á \"" );
  66.  printf( Temporary_directory ); printf( "\" ...\n" );
  67.  
  68.  // Äτ¿ΘáѼ ¬áΓὫú.
  69.  FindFiles( Temporary_directory, 1 );
  70.  
  71.  // é«ºóαáΓ.
  72.  return;
  73. }
  74.  
  75. // ─── ÄíαáíáΓδóáÑΓ Σá⌐½ ───
  76.  
  77. VOID ProcessFile( PCHAR Name )
  78. {
  79.  // æá¼ óαѼѡ¡δ⌐ ¬áΓὫú Γα«úáΓ∞ ¡Ñ ¡πª¡«.
  80.  if( strcmp( Name, Temporary_directory ) == EQUALLY ) return;
  81.  
  82.  // ôñá½∩Ѽ Σá⌐½.
  83.  APIRET Report = DosForceDelete( Name );
  84.  if( Report != NO_ERROR ) DosDeleteDir( Name );
  85.  
  86.  // é«ºóαáΓ.
  87.  return;
  88. }
  89.  
  90.  
  91.