Rev 37 | Blame | Compare with Previous | Last modification | View Log | RSS feed
// ============================================================================// Create// name : Andre Rikkert de Koe date: Mar 2018// descr : filefind// This is a demo of programming in the Pascal language.// Its part of a project to implement a program to create a directory// tree similar to the output of the Unix find program.// EUID : Any user who has read access to all the files being searched for.// run : interactive//// Changes// name : date:// descr : short description//// ============================================================================program filefind;Uses sysutils;var directory : string;var progname : string;// ============================================================================// Functions// ============================================================================procedure Usage(mesg : string);beginWriteln('Usage: ' + progname + ' directory');Writeln(mesg);end;procedure traverse(directory : string);var curdir1, curdir2 : string;Info : TSearchRec;pfile : string;begincurdir1 := GetCurrentDir;chdir(directory);curdir2 := GetCurrentDir;FindFirst(directory + '/*', faAnyFile or faHidden, Info);repeatif ((Info.name <> '..') and (Info.name <> '.'))thenbeginpfile := curdir2 + '/' + Info.name;Writeln(pfile);if (DirectoryExists(pfile))thentraverse(pfile)enduntil FindNext(Info) <> 0;chdir(curdir1);end;procedure start_traverse(directory : string);beginWriteln(directory);traverse(directory);end;// ============================================================================// Main// ============================================================================beginprogname := ParamStr(0);directory := ParamStr(1);if (ParamCount = 1)thenif DirectoryExists(directory)thenstart_traverse(directory)elseUsage('ERROR: Not a directory : ' + directory)elseUsage('ERROR: 1 argument expected');end.