Mega Code Archive

 
Categories / Java Tutorial / File
 

Files filter that filters files by their suffix (or extension)

/*  * $Id: SuffixFilenameFilter.java,v 1.1.1.1 2005/04/07 18:36:22 pocho Exp $  */ import java.io.File; import java.io.FilenameFilter; import javax.swing.filechooser.FileFilter; /**  * Files filter that filters files by their suffix (or extension).  * It can be used as file filter for {@link javax.swing.JFileChooser} or  * as file filter for io operations (@link java.io.File#listFiles(java.io.FilenameFilter)}.  *   * @version $Name:  $ - $Revision: 1.1.1.1 $ - $Date: 2005/04/07 18:36:22 $  * TODO Test  */ public class SuffixFilenameFilter extends FileFilter implements FilenameFilter {      /** Suffix of files */   private String suffix;      /** Description of suffix (i.e. .jpg may have description JPG)*/   private String description;      /** Full description of filter - (i.e. JPG (.jpg) */   private String fullDescription;      /** Indicates whether to use suffix in brackets after description */   private boolean useExtensionInDescription = true;   /**    * Creates new instance with a given accepted suffix of file names.    *    * @param suffix used suffix of files (i.e. extension ".xml")    */   public SuffixFilenameFilter(String suffix) {     this(suffix, null);   }   /**    * Creates new instance with a given accepted suffix of file names.    *    * @param suffix used suffix of files (i.e. extension ".xml")    */   public SuffixFilenameFilter(String suffix, String description) {     super();     setSuffix(suffix);     setDescription(description);   }   /**    * Indicates whether the name is accepted by this filter or not.    * File must ending with given mask of this filter.    *    * @param dir File    * @param name String    * @return boolean    */   public boolean accept(File dir, String name){   if (name.lastIndexOf(suffix) > 0)       return true;     else       return false;   }   public boolean accept(File file) {     if (file != null) {       if (file.isDirectory() || accept(file.getParentFile(), file.getName()))           return true;     }     return false;   }   /**    * Returns description of this filter - if {@link #isExtensionInDescription()}    * is <code>true</code> then it creates description in following shape:<br>    * <code>description (suffix)</code>. Otherwise it only returns description.    *     * @see javax.swing.filechooser.FileFilter#getDescription()    */   public String getDescription() {     if (fullDescription == null && isExtensionInDescription()) {         fullDescription = description==null ? "(" : description + " (";         fullDescription += suffix + ")";     }     return fullDescription;   }   /**    * Sets whether to use suffix in description of this filter.    *     * @param b    */   public void setExtensionInDescription(boolean b) {     useExtensionInDescription = b;     fullDescription = null;   }   public boolean isExtensionInDescription() {     return useExtensionInDescription;   }   public void setSuffix(String suffix) {     this.suffix = suffix;     fullDescription = null;   }   public void setDescription(String description) {     this.description = description;     fullDescription = null;   }      public String getExtension() {     return suffix;   }      public String getSimpleDescription() {     return description;   } }