home *** CD-ROM | disk | FTP | other *** search
- #define INCL_VIO
- #define INCL_DOS
- #define INCL_DOSERRORS
-
- #include <OS2.h>
- #include <Stdio.h>
- #include "FindRec.hpp"
-
- // æΓαá¡á - É«ßß¿∩.
- #define RUSSIAN 866
-
- // æΓαá¡á, ó ¬«Γ«α«⌐ αáí«ΓáÑΓ »α¿½«ªÑ¡¿Ñ.
- ULONG Code_page;
-
- // éαѼѡ¡δ⌐ ¬áΓὫú.
- PCHAR Temporary_directory;
-
- // ─── Äτ¿ßΓ¬á óαѼѡ¡δσ ¬áΓὫú«ó ───
-
- VOID main( INT Parameters_count, CHAR* Parameters[] )
- {
- // ôº¡áѼ ßΓαá¡π, ó ¬«Γ«α«⌐ αáí«ΓáÑΓ »α¿½«ªÑ¡¿Ñ.
- ULONG Size_of_list = 0;
- DosQueryCp( sizeof( Code_page ), &Code_page, &Size_of_list );
-
- // àß½¿ »áαá¼ÑΓαδ ¡Ñ ºáñá¡δ - ß««íΘÑ¡¿Ñ «í φΓ«¼.
- if( Parameters_count < 2 )
- {
- // ÅÑτáΓáѼ ß««íΘÑ¡¿Ñ.
- if( Code_page != RUSSIAN )
- {
- printf( "\nClearTMP is a tool for cleaning a temporary directories on a system startup." );
- printf( "\nVersion: 1.1" );
- printf( "\nUsage: ClearTMP <Temporary_directory>\n" );
- }
- else
- {
- printf( "\nÅα¿½«ªÑ¡¿Ñ ClearTMP »αÑñ¡áº¡áτÑ¡« ñ½∩ «τ¿ßΓ¬¿ óαѼѡ¡δσ ¬áΓὫú«ó »α¿ ºáúαπº¬Ñ" );
- printf( "\nOS/2. êß»«½∞º«óá¡¿Ñ: ClearTMP <ÅπΓ∞>" );
- printf( "\néÑαß¿∩: 1.1\n" );
- }
-
- // 髺óαáΓ.
- return;
- }
-
- // àß½¿ ñ½¿¡á »πΓ¿ í«½∞ΦÑ 10 íπ¬ó - ó«ºóαáΓ. éñαπú ¡áíÑαπΓ "C:"?
- Temporary_directory = Parameters[ 1 ];
- if( strlen( Temporary_directory ) < 10 )
- {
- // ÅÑτáΓáѼ ß««íΘÑ¡¿Ñ.
- if( Code_page != RUSSIAN ) printf( "\nA path length must be longer than 10 letters.\nNote: \"ClearTMP C:\" command is not allowed.\n" );
- else printf( "\n使¡á »πΓ¿ ñ«½ª¡á íδΓ∞ í«½∞ΦÑ 10.\né맮ó \"ClearTMP C:\" ¡Ñ αáºαÑΦÑ¡.\n" );
-
- // 髺óαáΓ.
- return;
- }
-
- // ôí¿αáѼ "\" ó ¬«¡µÑ ßΓ᫬¿.
- INT Length = strlen( Temporary_directory );
- if( Temporary_directory[ Length - 1 ] == '\\' ) Temporary_directory[ Length - 1 ] = NULL;
-
- // ÅÑτáΓáѼ ß««íΘÑ¡¿Ñ.
- if( Code_page != RUSSIAN ) printf( "Cleaning \"" );
- else printf( "Äτ¿ßΓ¬á \"" );
- printf( Temporary_directory ); printf( "\" ...\n" );
-
- // Äτ¿ΘáѼ ¬áΓὫú.
- FindFiles( Temporary_directory, 1 );
-
- // 髺óαáΓ.
- return;
- }
-
- // ─── ÄíαáíáΓδóáÑΓ Σá⌐½ ───
-
- VOID ProcessFile( PCHAR Name )
- {
- // æá¼ óαѼѡ¡δ⌐ ¬áΓὫú Γα«úáΓ∞ ¡Ñ ¡πª¡«.
- if( strcmp( Name, Temporary_directory ) == EQUALLY ) return;
-
- // ôñá½∩Ѽ Σá⌐½.
- APIRET Report = DosForceDelete( Name );
- if( Report != NO_ERROR ) DosDeleteDir( Name );
-
- // 髺óαáΓ.
- return;
- }
-
-
-