NoFace
NoFace

Reputation: 165

Get certain FileName based on its extension Java

I want to get certain file from my path which is only with ".pdf" file . How can i achieve it ?

     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());
    }
    }

my output result is

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

I want it to be

OODJ-Exam-Nick
OODJ-null-Joseph

Upvotes: 0

Views: 168

Answers (3)

Leonard
Leonard

Reputation: 833

For this purpose you could use the Apache Commons IO.

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

Upvotes: 1

user3453226
user3453226

Reputation:

You can use File.listFiles(FilenameFilter). See 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());
}

Upvotes: 0

Yusuf Kapasi
Yusuf Kapasi

Reputation: 587

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));
}

Upvotes: 0

Related Questions