Subversion Repositories svn.Prod repos

Rev

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
43 - 3
# name  : Andre Rikkert de Koe          date:   Apr 2011
6 ls 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
                        {
37 - 99
                                Usage(progname, "ERROR: Not a directory : " + basename);
6 ls 100
                        }
101
                }
102
                else
103
                Usage(progname, "ERROR: 1 argument expected");
104
        }
105
}