我想从我的路径获取某个文件,该文件仅与" .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
答案 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));
}