14ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira/* 24ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * Licensed to the Apache Software Foundation (ASF) under one or more 34ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * contributor license agreements. See the NOTICE file distributed with 44ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * this work for additional information regarding copyright ownership. 54ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * The ASF licenses this file to You under the Apache License, Version 2.0 64ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * (the "License"); you may not use this file except in compliance with 74ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * the License. You may obtain a copy of the License at 84ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * 94ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * http://www.apache.org/licenses/LICENSE-2.0 104ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * 114ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * Unless required by applicable law or agreed to in writing, software 124ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * distributed under the License is distributed on an "AS IS" BASIS, 134ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 144ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * See the License for the specific language governing permissions and 154ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * limitations under the License. 164ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira */ 174ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereirapackage org.apache.commons.io.filefilter; 184ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira 194ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereiraimport java.io.File; 204ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereiraimport java.io.Serializable; 214ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira 224ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira/** 234ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * This filter accepts <code>File</code>s that are hidden. 244ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * <p> 254ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * Example, showing how to print out a list of the 264ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * current directory's <i>hidden</i> files: 274ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * 284ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * <pre> 294ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * File dir = new File("."); 304ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * String[] files = dir.list( HiddenFileFilter.HIDDEN ); 314ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * for ( int i = 0; i < files.length; i++ ) { 324ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * System.out.println(files[i]); 334ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * } 344ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * </pre> 354ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * 364ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * <p> 374ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * Example, showing how to print out a list of the 384ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * current directory's <i>visible</i> (i.e. not hidden) files: 394ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * 404ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * <pre> 414ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * File dir = new File("."); 424ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * String[] files = dir.list( HiddenFileFilter.VISIBLE ); 434ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * for ( int i = 0; i < files.length; i++ ) { 444ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * System.out.println(files[i]); 454ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * } 464ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * </pre> 474ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * 484ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * @since Commons IO 1.3 494ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * @version $Revision: 587916 $ 504ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira */ 514ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereirapublic class HiddenFileFilter extends AbstractFileFilter implements Serializable { 524ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira 534ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira /** Singleton instance of <i>hidden</i> filter */ 544ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira public static final IOFileFilter HIDDEN = new HiddenFileFilter(); 554ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira 564ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira /** Singleton instance of <i>visible</i> filter */ 574ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira public static final IOFileFilter VISIBLE = new NotFileFilter(HIDDEN); 584ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira 594ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira /** 604ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * Restrictive consructor. 614ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira */ 624ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira protected HiddenFileFilter() { 634ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira } 644ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira 654ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira /** 664ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * Checks to see if the file is hidden. 674ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * 684ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * @param file the File to check 694ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * @return <code>true</code> if the file is 704ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * <i>hidden</i>, otherwise <code>false</code>. 714ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira */ 724ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira public boolean accept(File file) { 734ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira return file.isHidden(); 744ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira } 754ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira 764ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira} 77