import java.io.File; import java.io.IOException; import java.util.ArrayList; public class DirectoryFilesCollector { public ArrayList fileArraySource(String pPathToDirectory) { //pPathToDirector example: "D:/pdf/" String directoryPath = pPathToDirectory; File directory = new File(directoryPath); ArrayList filesInDirectory = new ArrayList<>(); if (directory.exists() && directory.isDirectory()) { File[] files = directory.listFiles(); if (files != null) { for (File file : files) { filesInDirectory.add(file); } } } else { System.out.println("Directory does not exist or is not a directory."); } // Now filesInDirectory contains all the File objects from the specified directory /* test: for (File file : filesInDirectory) { System.out.println(file.getName()); } */ // sort: filesInDirectory.sort(null); return filesInDirectory; } public ArrayList fileAsArrayOfString(String pPathToDirectory) { ArrayList filesInDirectory = new ArrayList<>(); filesInDirectory = fileArraySource(pPathToDirectory); ArrayList strFilesInDirectory = new ArrayList(); for (File file : filesInDirectory) { strFilesInDirectory.add(file.getName()); } strFilesInDirectory.sort(null); return strFilesInDirectory; } public ArrayList getAbsolutePathAsArrayOfString(String pPathToDirectory) { ArrayList filesInDirectory = new ArrayList<>(); filesInDirectory = fileArraySource(pPathToDirectory); ArrayList strFilesInDirectory = new ArrayList(); for (File file : filesInDirectory) { //strFilesInDirectory.add(file.getName()); strFilesInDirectory.add(file.getAbsolutePath()); } strFilesInDirectory.sort(null); return strFilesInDirectory; } public ArrayList getCanonicalPathAsArrayOfString(String pPathToDirectory) { ArrayList filesInDirectory = new ArrayList<>(); filesInDirectory = fileArraySource(pPathToDirectory); ArrayList strFilesInDirectory = new ArrayList(); for (File file : filesInDirectory) { try { strFilesInDirectory.add(file.getCanonicalPath()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } strFilesInDirectory.sort(null); return strFilesInDirectory; } public ArrayList getFilteredArrayOfFiles (String pPathToDirectory, String pToken) { ArrayList filesInDirectory = new ArrayList<>(); filesInDirectory = fileArraySource(pPathToDirectory); ArrayList filteredFilesInDirectory = new ArrayList(); for(File file: filesInDirectory) { if( file.getName().toLowerCase().contains(pToken.toLowerCase())) { filteredFilesInDirectory.add((file)); } } filteredFilesInDirectory.sort(null); return filteredFilesInDirectory; } }