Java 遞迴獲取路徑下所有檔案
阿新 • • 發佈:2022-01-15
/** * 遞迴獲取路徑下所有檔案 * * @param path 要獲取的路徑 * @param depth 初始深度 * @param maxDepth 最大遞迴深度 * @return 該路徑下所有檔案 */ private static List<File> rListFiles(File path, int depth, int maxDepth) { File[] files = path.listFiles(); List<File> result = new ArrayList<>(); if (files != null) { for (File file : files) { if (file.isDirectory()) { if (depth < maxDepth) { result.addAll(rListFiles(file, depth + 1, maxDepth)); } } else { result.add(file); } } } return result; } /** * 遞迴獲取路徑下所有檔案 * * @param path 要獲取的路徑 * @param maxDepth 最大深度 * @return 該路徑下所有檔案 */ private static List<File> rListFiles(File path, int maxDepth) { return rListFiles(path, 1, maxDepth); } /** * 遞迴獲取路徑下所有檔案 * * @param path 要獲取的路徑 * @return 該路徑下所有檔案 */ private static List<File> rListFiles(File path) { return rListFiles(path, Integer.MAX_VALUE); } /** * 遞迴獲取路徑下所有檔案 * * @param path 要獲取的路徑 * @return 該路徑下所有檔案 */ private static List<File> rListFiles(String path) { return rListFiles(new File(path), Integer.MAX_VALUE); }