Subversion Repositories svn.Prod repos

Rev

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

Rev Author Line No. Line
6 ls 1
/* ============================================================================
2
# Create
3
# name  : Andre Rikkert de Koe          date:   apr 2011
4
# descr : filefind
5
#         This is a demo of programming in the java language.
6
#         Its part of a project to implement a program to create a directory
7
#         tree similar to the output of the Unix find program.
8
# EUID  : Any user who has read access to all the files being searched for.
9
# run   : interactive
10
#
11
# Changes
12
# name  :                               date:
13
# descr : short description
14
#
15
# ========================================================================== */
16
 
17
import java.io.*;
18
import java.util.*;
19
 
10 ls 20
public class filefind
6 ls 21
{
22
	protected File base;
23
	protected PrintStream out;
24
 
25
	static void Usage(String progname, String mesg)
26
	{
27
		System.out.println("Usage: " + progname + " directory");
28
		System.out.println(mesg);
29
	}
30
 
31
	static boolean issymlink(File file1)
32
	{
33
		boolean result;
34
		try
35
		{
36
			result = !file1.getAbsolutePath().equals(file1.getCanonicalPath());
37
		}
38
		catch (IOException ie)
39
		{
40
			System.err.println("Caught IOException: " + ie.getMessage());
41
			result = false;
42
		}
43
		return result;
44
	}
10 ls 45
 
6 ls 46
	public filefind(String filename)
47
	{
48
        	base = new File(filename);
49
	}
50
 
11 ls 51
	static void start_traverse(File base)
6 ls 52
	{
11 ls 53
		try
54
		{
55
			System.out.println(base.getCanonicalPath());
56
		}
57
		catch (IOException ie)
58
		{
59
			System.err.println("Caught IOException: " + ie.getMessage());
60
		}
6 ls 61
		traverse(base);
62
	}
63
 
64
	static void traverse(File b)
65
    	{
66
		File [] subs = b.listFiles();
67
		for(int i = 0; i < subs.length; i++)
68
		{
69
			if (subs[i].isDirectory() && !issymlink(subs[i]))
70
			{
71
				System.out.println(subs[i]);
72
				traverse(subs[i]);
73
			}
74
			else
75
			{
76
				System.out.println(subs[i]);
77
			}
78
		}
79
	}
80
 
81
/* ============================================================================
82
# MAIN
83
# ========================================================================== */
84
 
85
	public static void main(String [] args)
86
	{ 
87
        	String basename;
88
		String progname = "filefind"; 
89
        	if (args.length == 1)
90
		{
91
			basename = args[0];
92
			File base = new File(basename);
93
			if (base.isDirectory())
94
			{
11 ls 95
				start_traverse(base);
6 ls 96
			}
97
			else
98
			{
99
	   			Usage(progname, "ERROR: No directory " + basename + " found");
100
			}
101
		}
102
		else
103
	   	Usage(progname, "ERROR: 1 argument expected");
104
    	}
105
}