Advertisement
Georgi_Benchev

Untitled

Dec 6th, 2024
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.28 KB | None | 0 0
  1. package com.company.dsa;
  2.  
  3. import java.io.File;
  4. import java.util.ArrayList;
  5. import java.util.HashMap;
  6. import java.util.List;
  7. import java.util.Map;
  8.  
  9. public class FilesUtils {
  10.  
  11.     public static void traverseDirectories(String path) {
  12.         File directory = new File(path);
  13.  
  14.         if (directory.isDirectory()) {
  15.             System.out.println(directory.getName() + ":");
  16.             traverse(directory, 1);
  17.         }
  18.     }
  19.  
  20.     private static void traverse(File file, int indentLevel) {
  21.  
  22.         File[] files = file.listFiles();
  23.         if (files != null) {
  24.             for (File fileInArray : files) {
  25.                 String spacings = "  ".repeat(indentLevel);
  26.                 if (fileInArray.isDirectory()) {
  27.                     System.out.println(spacings + fileInArray.getName() + ":");
  28.                     traverse(fileInArray, indentLevel + 1);
  29.                 } else {
  30.                     System.out.println(spacings + fileInArray.getName());
  31.                 }
  32.             }
  33.         }
  34.     }
  35.  
  36.     public static List<String> findFiles(String path, String extension) {
  37.         List<String> fileNames = new ArrayList<>();
  38.         File directory = new File(path);
  39.         File[] files = directory.listFiles();
  40.         if (files != null) {
  41.             for (File fileInArray : files) {
  42.                 if (fileInArray.isDirectory()) {
  43.                     fileNames.addAll(findFiles(fileInArray.getPath(), extension));
  44.                 } else {
  45.                     if (fileInArray.getName().endsWith(extension)) {
  46.                         fileNames.add(fileInArray.getName());
  47.                     }
  48.                 }
  49.             }
  50.         }
  51.         return fileNames;
  52.     }
  53.  
  54.     public static boolean fileExists(String path, String fileName) {
  55.  
  56.         File directory = new File(path);
  57.         File[] files = directory.listFiles();
  58.         if (files != null) {
  59.             for (File fileInArray : files) {
  60.                 if (fileInArray.isDirectory()) {
  61.                     if (fileExists(fileInArray.getPath(), fileName)) {
  62.                         return true;
  63.                     }
  64.                 } else {
  65.                     if (fileInArray.getName().equals(fileName)) {
  66.                         return true;
  67.                     }
  68.                 }
  69.             }
  70.         }
  71.         return false;
  72.     }
  73.  
  74.     public static Map<String, Integer> getDirectoryStats(String path) {
  75.         Map<String, Integer> fileStats = new HashMap<>();
  76.         File file = new File(path);
  77.         gatherFileStats(file, fileStats);
  78.         return fileStats;
  79.     }
  80.  
  81.  
  82.     private static void gatherFileStats(File directory, Map<String, Integer> fileStats) {
  83.         if (directory.exists() && directory.isDirectory()) {
  84.             File[] files = directory.listFiles();
  85.             if (files != null) {
  86.                 for (File file : files) {
  87.                     if (file.isDirectory()) {
  88.                         gatherFileStats(file, fileStats);
  89.                     } else {
  90.                         String[] parts = file.getName().split("\\.");
  91.                         String extension = parts[parts.length - 1];
  92.                         fileStats.put(extension, fileStats.getOrDefault(extension, 0) + 1);
  93.                     }
  94.                 }
  95.             }
  96.         }
  97.     }
  98. }
  99.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement