Subversion Repositories svn.Prod repos

Rev

Rev 10 | Go to most recent revision | Details | 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
 
20
public class filefind /*implements Runnable */
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
	}
45
    /**
46
     * Create a filefind object for the given string, with
47
     * a print indentation given. 
48
     */
49
	public filefind(String filename)
50
	{
51
        	base = new File(filename);
52
	}
53
 
54
	public void start_traverse(String directory)
55
	{
56
		System.out.println(directory);
57
		traverse(base);
58
	}
59
 
60
	static void traverse(File b)
61
    	{
62
		String curdir;
63
		curdir = b.getAbsolutePath();
64
		System.setProperty("user.dir",curdir);
65
 
66
		File [] subs = b.listFiles();
67
		for(int i = 0; i < subs.length; i++)
68
		{
69
                        //File f2 = new File(subs[i]);
70
			if (subs[i].isDirectory() && !issymlink(subs[i]))
71
			{
72
				System.out.println(subs[i]);
73
				traverse(subs[i]);
74
			}
75
			else
76
			{
77
				System.out.println(subs[i]);
78
			}
79
		}
80
		System.setProperty("user.dir",curdir);
81
	}
82
 
83
/* ============================================================================
84
# MAIN
85
# ========================================================================== */
86
 
87
	public static void main(String [] args)
88
	{ 
89
        	String basename;
90
		String progname = "filefind"; 
91
        	if (args.length == 1)
92
		{
93
			basename = args[0];
94
			File base = new File(basename);
95
			if (base.isDirectory())
96
			{
97
				filefind walker = new filefind(basename);
98
				//walker.setOutput(System.out);
99
				walker.start_traverse(basename);
100
			}
101
			else
102
			{
103
	   			Usage(progname, "ERROR: No directory " + basename + " found");
104
			}
105
		}
106
		else
107
	   	Usage(progname, "ERROR: 1 argument expected");
108
    	}
109
}