Reputation: 165
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
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
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
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