1 /* 2 * Fsgrep is a simple Java application which allows a user to 3 * search all files in a directory structure for lines matching 4 * a given pattern. Its functionality is a combination of the 5 * Unix 'find' and 'grep' utilities. 6 * Visit [http://fsgrep.sourceforge.net/] for more information. 7 * 8 * Copyright (C) 2003-2006 Murali Krishnan [murali_ca_us@users.sourceforge.net] 9 * 10 * Fsgrep is free software; you can redistribute it and/or modify 11 * it under the terms of version 2 of the GNU General Public 12 * License as published by the Free Software Foundation. 13 * 14 * Fsgrep is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * GNU General Public License for more details. 18 * 19 * You should have received a copy of the GNU General Public License 20 * along with Fsgrep (see the file named LICENSE.txt); if not, write 21 * to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, 22 * Boston, MA 02111-1307 USA 23 */ 24 25 package mk.fsgrep.find; 26 27 28 import java.io.*; 29 30 31 /*** 32 * Examine the contents of a given directory for subdirectories and desired 33 * files. 34 * 35 * @author Murali Krishnan 36 * 37 */ 38 public class DirScan implements Runnable { 39 40 //------------------------------------------------------------ 41 //- Class Variables 42 43 protected static final FileFilter FILTER_SUBDIR = new SubdirFilter(); 44 45 46 47 //------------------------------------------------------------ 48 //- Class Functions 49 50 51 52 //------------------------------------------------------------ 53 //- Instance Variables 54 55 private Finder _finder = null; 56 private File _dir = null; 57 58 59 60 //------------------------------------------------------------ 61 //- Constructors 62 63 public DirScan(Finder pFinder, File pDir) { 64 _finder = pFinder; 65 _dir = pDir; 66 } 67 68 69 //------------------------------------------------------------ 70 //- Accessors 71 72 public Finder getFinder() {return _finder;} 73 public File getDir() {return _dir;} 74 75 76 77 //------------------------------------------------------------ 78 //- Settors 79 80 81 82 //------------------------------------------------------------ 83 //- Private/Protected Utility Functions 84 85 86 87 //------------------------------------------------------------ 88 //- Public Interface Functions 89 90 91 92 //------------------------------------------------------------ 93 //- Class Interface Functions 94 95 public void run () { 96 FilenameFilter filter = getFinder().getFilter(); 97 98 File[] matches = getDir().listFiles(filter); 99 100 getFinder().addFiles(matches); 101 102 File[] subdirs = getDir().listFiles(FILTER_SUBDIR); 103 getFinder().addSubDirs(subdirs); 104 } 105 106 107 108 //------------------------------------------------------------ 109 //- Inner Classes 110 111 static class SubdirFilter implements FileFilter { 112 public boolean accept(File path) { 113 boolean result = path.isDirectory() && !(path.getName().equals("CVS")) && !(path.getName().equals(".svn")); 114 115 return result; 116 } 117 } 118 119 120 //------------------------------------------------------------ 121 //- Main 122 123 124 125 }