home *** CD-ROM | disk | FTP | other *** search
- //
- // 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 //
-
-