Tom*_*man 5 java search swing desktop-application
我正在使用java的Windows版桌面应用程序.在我的应用程序中,需要从本地系统中搜索MyDocuments/Documents(根据操作系统)中的所有.doc和.docx文件,并显示其名称和文件大小.
我没有得到帮助我列出所有*.doc,*.docx,*.xls,*.xlsx,*.csv,*.txt,*.pdf,*.ppt,*.pptx的方式Documents/MyDocuments中存在的文件.
请给我你宝贵的建议或建议我任何链接,以帮助我编写代码,以便更快地搜索和列出其名称,大小和类型.
您可以使用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());
}
}
}
Run Code Online (Sandbox Code Playgroud)