home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Devil's Doorknob BBS Capture (1996-2003)
/
devilsdoorknobbbscapture1996-2003.iso
/
Dloads
/
OTHERUTI
/
TCPP10-8.ZIP
/
CLASSEXM.ZIP
/
DIRECTRY.CPP
next >
Wrap
C/C++ Source or Header
|
1990-09-26
|
5KB
|
195 lines
//
// This file contains proprietary information of Borland International.
// Copying or reproduction without prior written approval is prohibited.
//
// Copyright (c) 1990
// Borland International
// 1800 Scotts Valley Dr.
// Scotts Valley, CA 95066
// (408) 438-8400
//
// Contents ----------------------------------------------------------------
//
// Directory::Directory constructor
// Directory::addFile
//
// Description
//
// Implementation of class Directory member functions.
//
// End ---------------------------------------------------------------------
// Interface Dependencies ---------------------------------------------------
#ifndef __DIR_H
#include <dir.h>
#define __DIR_H
#endif
#ifndef __CLSTYPES_H
#include <clstypes.h>
#endif
#ifndef __DIRECTRY_H
#include "directry.h"
#endif
// End Interface Dependencies ------------------------------------------------
// Implementation Dependencies ----------------------------------------------
#ifndef __FILEDATA_H
#include "filedata.h"
#endif
// End Implementation Dependencies -------------------------------------------
// Constructor //
Directory::Directory( char *pathName, sortOrder sortBy ) :
SortedArray( 10, 0, 5 ), mask( pathName )
// Summary -----------------------------------------------------------------
//
// Constructs a directory object. A directory object contains
// a sorted array of the file names which are in the directory.
//
// Parameters
//
// pathName
//
// Character pointer to the pathname for the directory. This
// pathname may include wildcard characters.
//
// sortBy
//
// The order by which we are to sort the directory entries.
//
// Functional Description
//
// We walk through the directory, adding each of the file names to
// our directory object.
//
// End ---------------------------------------------------------------------
{
struct ffblk fileBlock;
int morePathNames = !findfirst( mask, &fileBlock, 0 );
while( morePathNames )
{
addFile( fileBlock, sortBy );
morePathNames = !findnext( &fileBlock );
} // end while more files.
}
// End Constructor Directory::Directory //
// Member Function //
void Directory::addFile( ffblk& fileBlock, sortOrder sortBy )
// Summary -----------------------------------------------------------------
//
// Adds a file to a directory object.
//
// Parameters
//
// fileBlock
//
// The DOS file block we are to add to this directory object.
//
// sortBy
//
// The order in which files are to be sorted.
//
// Functional Description
//
// Depending upon the sort order, we add a new object to the
// sorted array.
//
// End ---------------------------------------------------------------------
{
switch( sortBy )
{
case byName:
add( *(new FilesByName( fileBlock )) );
break;
case byDate:
add( *(new FilesByDate( fileBlock )) );
break;
case bySize:
add( *(new FilesBySize( fileBlock )) );
break;
} // end switch on sort order.
}
// End Member Function Directory::addFile //
// Member Function //
void Directory::printHeader( ostream& outputStream ) const
// Summary -----------------------------------------------------------------
//
// Displays the directory mask for the directory listing
//
// Parameters
//
// outputStream
//
// The stream on which we will be writing the header.
//
// Functional Description
//
// We print the directory mask
//
// End ---------------------------------------------------------------------
{
outputStream << "Directory: " << mask << "\n ";
}
// End Member Function Directory::printHeader //
// Member Function //
void Directory::printSeparator( ostream& outputStream ) const
// Summary -----------------------------------------------------------------
//
// Starts a new line for the next directory entry.
//
// Parameters
//
// outputStream
//
// The stream on which we will be writing the separator.
//
// End ---------------------------------------------------------------------
{
outputStream << "\n ";
}
// End Member Function Directory::printSeparator //
// Member Function //
void Directory::printTrailer( ostream& outputStream ) const
// Summary -----------------------------------------------------------------
//
// Displays a new line for the trailer.
//
// Parameters
//
// outputStream
//
// The stream on which we will be writing the trailer.
//
// End ---------------------------------------------------------------------
{
outputStream << "\n";
}
// End Member Function Directory::printTrailer //