Example usage for org.apache.commons.io.filefilter PrefixFileFilter PrefixFileFilter

List of usage examples for org.apache.commons.io.filefilter PrefixFileFilter PrefixFileFilter

Introduction

In this page you can find the example usage for org.apache.commons.io.filefilter PrefixFileFilter PrefixFileFilter.

Prototype

public PrefixFileFilter(List prefixes, IOCase caseSensitivity) 

Source Link

Document

Constructs a new Prefix file filter for a list of prefixes specifying case-sensitivity.

Usage

From source file:de.ee.hezel.PDFCorpusAnalyser.java

/**
 * Run thru the given folders and find pdf document which have the same name.
 * For every pair, a PDFInfoHolder objects gets created.
 * /*from w  w  w.  j av a  2 s  . com*/
 * @param pdfs1 for the 1st directory
 * @param pdfs2 for the 2nd directory
 * @param prefix 
 * @return list of all pdf pairs
 */
public static Set<PDFInfoHolder> getSimplePDFInfoHolders(File pdfs1, File pdfs2, String prefix) {
    Set<PDFInfoHolder> pdfInfoHolders = new HashSet<PDFInfoHolder>();

    // are those valid pathes
    if (pdfs1 != null && pdfs2 != null && pdfs1.isDirectory() && pdfs2.isDirectory()) {
        // create a filter to only get pdf files
        List<FilenameFilter> filters = new ArrayList<FilenameFilter>();
        if (null != prefix && prefix.length() > 0) {
            PrefixFileFilter filter = new PrefixFileFilter(prefix, IOCase.SYSTEM);
            filters.add(filter);
        }
        filters.add(new SuffixFileFilter(".pdf", IOCase.INSENSITIVE));
        FilenameFilter filter = new AndFileFilter(filters);

        //get all pdf file sin this folder
        String[] pdfDocuments1 = pdfs1.list(filter);

        for (int i = 0; i < pdfDocuments1.length; i++) {
            // get the pdf file name
            String pdfFilename1 = pdfDocuments1[i];

            // get the path for both pdf files
            File pdfFile1 = new File(pdfs1, pdfFilename1);
            File pdfFile2 = new File(pdfs2, pdfFilename1);

            // bind them together in a PDFInfoHolder objects
            PDFInfoHolder newPDFInfoHolder = new PDFInfoHolder(pdfFile1, pdfFile2);

            // remember them all
            pdfInfoHolders.add(newPDFInfoHolder);
        }

        // TODO what should happen if there are less reference documents than new generated ones
    } else {
        log.error("The path is not valid.");
    }

    return pdfInfoHolders;
}