[Back to DIRS SWAG index] [Back to Main SWAG index] [Original]
{
Below you'll find a program that lists all the directories on the C drive. It
can be extended very easily but it just wanted to show the basics. (It was
part of a program that did for dos what the DELTREE command does now. I used
to work (good old days) with Dos 3.3 which doesn't have a DELTREE command)
{-------------------------------------------------------------------------}
{ programmer : David van Driessche (2:291/1933.13) }
{ language : Borland Pascal v7.0 }
{ purpose : explaining recursive directory listings }
{-------------------------------------------------------------------------}
{- This code is public domain, feel free to do with it any descent thing -}
program GetDirInfo ;
uses Dos, Crt ;
var
DirCounter : Integer ;
Scherm : Text ;
procedure Show( Direct : String ) ;
var
{
Info must be a local parameter of Show. This way the information in the
SearchRec is saved when a subdirectory is explored using recursion.
}
Info : SearchRec ;
begin
{ We have to search the directory in Direct, build the search-path }
if ( Direct[Length(Direct)] <> '\' ) THEN Direct := Direct + '\' ;
FindFirst( Direct+'*.*', AnyFile, Info ) ;
{ As long as we have 'things' in the Direct directory, look at them }
while ( DosError = 0 ) do
begin
if ( (Info.Name <> '.') and (Info.Name <> '..') and
( (Info.Attr and Directory) = Directory) )
then
begin
{ We found one directory more }
Inc ( DirCounter ) ;
{ Show what we found }
Writeln( Direct+Info.Name ) ;
{ We will now search that directory }
Show( Direct+Info.Name ) ;
end ;
{ Are there any more things out there ? If so, look at them }
FindNext( Info ) ;
end ;
end ;
begin
AssignCrt( Scherm ) ;
ReWrite( Scherm ) ;
DirCounter := 0 ;
Show ( 'C:\' ) ;
Writeln( Scherm ) ;
Writeln( Scherm, 'Number of directories = ', DirCounter:0 ) ;
end.
[Back to DIRS SWAG index] [Back to Main SWAG index] [Original]