【问题标题】:Get certain FileName based on its extension Java根据扩展名 Java 获取特定的 FileName
【发布时间】:2015-01-05 19:49:11
【问题描述】:

我想从我的路径中获取某些文件,该文件仅包含“.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

【问题讨论】:

  • 你读过String的javadoc吗?因为你所需要的就在这个类里面。

标签: java file


【解决方案1】:

为此,您可以使用Apache Commons IO

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

【讨论】:

    【解决方案2】:

    您可以使用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());
    }
    

    【讨论】:

      【解决方案3】:
      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));
      }
      

      【讨论】:

        猜你喜欢
        • 2023-03-02
        • 1970-01-01
        • 2010-10-05
        • 2017-05-27
        • 2021-03-19
        • 2019-06-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多