根据其扩展Java获取某些FileName

时间:2014-11-09 12:14:10

标签: java file

我想从我的路径获取某个文件,该文件仅与" .pdf"档案。我怎样才能实现它?

     File path = new File("C:\\Users\\theunique\\Documents\\NetBeansProjects\\APUassignment");
    File [] files = path.listFiles();

       for (int i = 0; i < files.length; i++){
    if (files[i].isFile()){ //this line weeds out other directories/folders
        System.out.println(files[i].getName());
    }
    }

我的输出结果是

ModulesNumber.txt 
ModulesObjects.dat
number.txt
Objects.dat
OODJ-Exam-Nick.pdf
oodj-null-Joseph.pdf

我希望它是

OODJ-Exam-Nick
OODJ-null-Joseph

3 个答案:

答案 0 :(得分:1)

为此,您可以使用Apache Commons IO

String fileExtension = FilenameUtils.getExtension(files[i]);
String fileNameWithoutExtension = FilenameUtils.removeExtension(files[i]);
if(fileExtension.equals("pdf")){
    System.out.println(fileNameWithoutExtension);
}

答案 1 :(得分:0)

您可以使用File.listFiles(FilenameFilter)。 请参阅Use of FilenameFilter

File[] files = path.listFiles(new FilenameFilter() {
    @Override
    public boolean accept(File dir, String name) {
        // Automatically weeds out directories
        return name.toLowerCase().endsWith(".pdf");
    }
});
// Why use an index?
for (File file : files) {
    System.out.println(file.getName());
}

答案 2 :(得分:0)

int index = files[i].getName().lastIndexOf(".");
String extension= files[i].getName().substring(index, files[i].getName().length());
if(extension.equalsIgnoreCase("pdf") {
    System.out.println(files[i].getName().subString(0, index));
}