campo-sirio/al/examples/ex07con.cpp
alex 714dd74636 Archive Library versione 2.00
git-svn-id: svn://10.65.10.50/trunk@5350 c028cbd2-c16b-5b4b-a496-9718f37d4682
1997-10-09 16:09:54 +00:00

67 lines
1.9 KiB
C++
Executable File

//
// EX07CON.CPP
//
// C++/DOS Example program for ArchiveLib 2.0
//
// Copyright (c) Greenleaf Software, Inc. 1994 - 1996
// All Rights Reserved
//
// MEMBERS/FUNCTIONS DEMONSTRATED
//
// ALArchiveBase::Extract()
// ALName::ALName()
// ALName::operator=()
// ALName::operator+()
//
// 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 <conio.h>
#include "arclib.h"
#include "glarc.h"
#include "pkarc.h"
#include "bargraph.h"
#include <direct.h>
main( int, char *[] )
{
cout << "Archive Library 2.0\nEX07CON.CPP\n\n";
cout << "This example program extracts files from DOS00.GAL, and puts them\n";
cout << "in a new subdirectory called TEMP. In order to make the files\n";
cout << "go to the subdirectory, we have to walk through the entry list and\n";
cout << "change the name of each and every object so it includes the\n";
cout << "TEMP\\ directory specification.\n\n";
getch();
ALBarGraph monitor( AL_MONITOR_OBJECTS, cout );
#if defined( ZIP )
ALPkArchive archive( "dos00.zip" );
ALEntryList list( &monitor, PkDecompressTools() );
#else
ALGlArchive archive( "dos00.gal" );
ALEntryList list( &monitor, GlDecompressTools() );
#endif
mkdir( "temp" );
archive.ReadDirectory( list );
ALEntry *entry = list.GetFirstEntry();
while ( entry ) {
ALName name = entry->mpStorageObject->mName;
name = ALName( "temp\\" ) + (const char *) name;
entry->mpStorageObject->mName = name;
entry = entry->GetNextEntry();
}
return archive.Extract( list );
}