Java code to search all .doc and .docx files from the local system

I am working in a desktop application for a version of Windows using java. In my application, there is a requirement for searching all .doc and .docx files from MyDocuments / Documents (according to the OS) from the local system and displaying the file name and size there.

I don’t get a way to help me list all * .doc, * .docx, * .xls, * .xlsx, * .csv, * .txt, * .pdf, * .ppt, * .pptx files that are in the documents / MyDocuments.

Please give me your valuable suggestions or offer me any link that will help me write code to speed up the search and list with it name, size and type.

+5
source share
5

Apache Commons IO, FileUtils. - :

import java.io.File;
import java.util.Collection;

import org.apache.commons.io.*;
import org.apache.commons.io.filefilter.*;

public class SearchDocFiles {
    public static String[] EXTENSIONS = { "doc", "docx" };

    public Collection<File> searchFilesWithExtensions(final File directory, final String[] extensions) {
        return FileUtils.listFiles(directory,
                extensions,
                true);
    }

    public Collection<File> searchFilesWithCaseInsensitiveExtensions(final File directory, final String[] extensions) {
        IOFileFilter fileFilter = new SuffixFileFilter(extensions, IOCase.INSENSITIVE);
        return FileUtils.listFiles(directory,
                fileFilter,
                DirectoryFileFilter.INSTANCE);
    }


    public static void main(String... args) {
        // Case sensitive
        Collection<File> documents = new SearchDocFiles().searchFilesWithExtensions(
                new File("/tmp"),
                SearchDocFiles.EXTENSIONS);
        for (File document: documents) {
            System.out.println(document.getName() + " - " + document.length());
        }

        // Case insensitive
        Collection<File> caseInsensitiveDocs = new SearchDocFiles().searchFilesWithCaseInsensitiveExtensions(
                new File("/tmp"),
                SearchDocFiles.EXTENSIONS);
        for (File document: caseInsensitiveDocs) {
            System.out.println(document.getName() + " - " + document.length());
        }
    }
}
+8

.

public void getFiles(String path) {
    File dir = new File(path);
    String[] children = dir.list();
    if (children != null) {
        for (int i = 0; i < children.length; i++) {
            // Get filename of file or directory
            String filename = children[i];
            File file = new File(path + File.separator + filename);
            if (!file.isDirectory()) {
                if (file.getName().endsWith(".doc") || file.getName().endsWith(".docx")) {
                    System.out.println("File Name " + filename + "(" + file.length()+"  bytes)");
                }
            } else {
                getFiles(path + File.separator + filename);
            }
        }
    }
}
+2

.doc(x), java.io.File.list(FileFilter), :

public java.util.List mswordFiles (java.io.File dir) {  java.util.List res = new java.util.ArrayList();  _mswordFiles (dir, res);  return res;
}
protected void _mswordFiles (java.io.File dir, java.util.List res) {  java.io.File [] files = dir.listFiles( java.io.FileFilter() {       public boolean accept (java.io.File f) {            = f.getName(). ToLowerCase();          return! f.isDirectory() && (name.endsWith( ". doc" ) || name.endsWith( ". docx" ));       }    });  for (java.io.File f: ) {res.add(f);}  java.io.File [] dirs = dir.listFiles( java.io.FileFilter() {       public boolean accept (java.io.File f) {           return f.isDirectory();       }     });  for (java.io.File d: dirs) {_mswordFiles (d, res);}
}
+1

, "":

@khachik / . - Martijn Verburg 10 '10 12:02

, , , :

public static final IOFileFilter filter = new SuffixFileFilter(EXTENSIONS, IOCase.INSENSITIVE);

searchFilesWithExtensions return FileUtils.listFiles( directory, filter, DirectoryFileFilter.DIRECTORY );

+1

, MSWord Apache POI Lucene ( , ). Nutch Solr Lucene, ( , ​​Lucene ).

[] ( ). Java? Java API . Apache (Commons IO), , . , . FileUtils.listFiles(dir, filefilter, dirfilter) FileUtils.listFiles(dir, extensions [], recursive). .

0

All Articles