70 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
/*
 | 
						|
 * EX07CON.C
 | 
						|
 *
 | 
						|
 *  C/DOS Example program for ArchiveLib 2.0
 | 
						|
 *
 | 
						|
 *  Copyright (c) Greenleaf Software, Inc. 1994 - 1996
 | 
						|
 *  All Rights Reserved
 | 
						|
 *
 | 
						|
 * MEMBERS/FUNCTIONS DEMONSTRATED
 | 
						|
 *
 | 
						|
 *
 | 
						|
 * DESCRIPTION
 | 
						|
 *
 | 
						|
 *  This example program extracts files from dos00.gal, and puts them
 | 
						|
 *  in a new subdirectory called TEMP.  In order to make the files
 | 
						|
 *  go to the subdirectory, we have to walk through the entry list and
 | 
						|
 *  change the name of each and every object so it includes the
 | 
						|
 *  TEMP\ directory specification.
 | 
						|
 *
 | 
						|
 * REVISION HISTORY
 | 
						|
 *
 | 
						|
 *  February 1, 1996  2.0A  : Second release
 | 
						|
 *
 | 
						|
 */
 | 
						|
 | 
						|
#include <stdio.h>
 | 
						|
#include <string.h>
 | 
						|
#include <direct.h>
 | 
						|
#include <conio.h>
 | 
						|
 | 
						|
#include "al.h"
 | 
						|
 | 
						|
int main()
 | 
						|
{
 | 
						|
 hALArchive archive;
 | 
						|
 hALMonitor monitor;
 | 
						|
 hALEntryList list;
 | 
						|
 hALEntry entry;
 | 
						|
 | 
						|
 printf( "Archive Library 2.0\nEX07CON.C\n\n" );
 | 
						|
 printf( "This example program extracts files from dos00.gal, and puts them\n" );
 | 
						|
 printf( "in a new subdirectory called TEMP.  In order to make the files\n" );
 | 
						|
 printf( "go to the subdirectory, we have to walk through the entry list and\n" );
 | 
						|
 printf( "change the name of each and every object so it includes the\n" );
 | 
						|
 printf( "TEMP\\ directory specification.\n\n" );
 | 
						|
 getch();
 | 
						|
 | 
						|
 monitor = newALBarGraph( AL_MONITOR_OBJECTS );
 | 
						|
#if defined( ZIP )
 | 
						|
 archive = newALPkArchive( "dos00.zip" );
 | 
						|
 list = newALListPkDecompressFileTools( monitor );
 | 
						|
#else
 | 
						|
 archive = newALGlArchive( "dos00.gal" );
 | 
						|
 list = newALListGlDecompressFileTools( monitor );
 | 
						|
#endif
 | 
						|
 | 
						|
 mkdir( "temp" );
 | 
						|
 ALArchiveReadDirectory( archive, list );
 | 
						|
 entry = ALEntryListGetFirstEntry( list );
 | 
						|
 while ( entry ) {
 | 
						|
     char name[ 132 ];
 | 
						|
     strcpy( name, "temp\\" );
 | 
						|
     strcat( name, ALStorageGetName( ALEntryGetStorage( entry ) ) );
 | 
						|
     printf( "New name: %s\n", name );
 | 
						|
     ALStorageSetName( ALEntryGetStorage( entry ), name );
 | 
						|
     entry = ALEntryGetNextEntry( entry );
 | 
						|
 }
 | 
						|
 return ALArchiveExtract( archive, list );
 | 
						|
}
 |