/* * 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 #include #include #include #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 ); }