Subversion Repositories svn.Prod repos

Rev

Rev 31 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
29 - 1
program filefind;
31 - 2
Uses	sysutils;
29 - 3
var	directory : string;
37 - 4
var	progname : string;
29 - 5
 
31 - 6
// ============================================================================
7
// Functions
8
// ============================================================================
9
 
37 - 10
procedure Usage(mesg : string);
11
begin
12
	Writeln('Usage: ' + progname + ' directory');
13
	Writeln(mesg);
14
end;
15
 
29 - 16
procedure traverse(directory : string);
17
var	curdir1, curdir2 : string;
30 - 18
	Info : TSearchRec;
29 - 19
	pfile : string;
20
begin
21
	curdir1 := GetCurrentDir;
22
	chdir(directory);
23
	curdir2 := GetCurrentDir;
30 - 24
	FindFirst(directory + '/*', faAnyFile or faHidden, Info);
29 - 25
	repeat
30 - 26
		if ((Info.name <> '..') and (Info.name <> '.'))
29 - 27
		then
28
			begin
30 - 29
			pfile := curdir2 + '/' + Info.name;
29 - 30
			Writeln(pfile);
31
			if (DirectoryExists(pfile))
32
			then
33
				traverse(pfile)
34
			end
30 - 35
	until FindNext(Info) <> 0;
29 - 36
	chdir(curdir1);
37
end;
38
 
39
procedure start_traverse(directory : string);
40
begin
41
	Writeln(directory);
42
	traverse(directory);
43
end;
44
 
31 - 45
// ============================================================================
46
// Main
47
// ============================================================================
48
 
29 - 49
begin
37 - 50
	progname := ParamStr(0);
29 - 51
	directory := ParamStr(1);
30 - 52
	if (ParamCount = 1)
29 - 53
	then
30 - 54
		if DirectoryExists(directory)
55
		then
56
			start_traverse(directory)
57
		else
37 - 58
			Usage('ERROR: Not a directory : ' + directory)
29 - 59
	else
37 - 60
		Usage('ERROR: 1 argument expected');
29 - 61
end.