1. import java.io.File;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. public class DirectoryAnomalyFinder {
  5. public static void main(String[] args) {
  6. List<File> directories = getDirectories(); // Get list of directories to analyze
  7. detectAnomalies(directories); // Detect and print anomalies
  8. }
  9. // Placeholder for getting the directories. Replace with your actual directory retrieval logic.
  10. private static List<File> getDirectories() {
  11. List<File> directories = new ArrayList<>();
  12. File rootDir = new File("."); // Current directory
  13. if (rootDir.isDirectory()) {
  14. for (String s : rootDir.list()) {
  15. File file = new File(rootDir, s);
  16. if (file.isDirectory()) {
  17. directories.add(file);
  18. }
  19. }
  20. }
  21. return directories;
  22. }
  23. public static void detectAnomalies(List<File> directories) {
  24. if (directories == null || directories.isEmpty()) {
  25. System.out.println("No directories to analyze.");
  26. return;
  27. }
  28. // Example anomaly detection: Directory size (number of files/subdirectories).
  29. for (File directory : directories) {
  30. long size = directory.getFilesTotalSize() + directory.getDirectoriesTotalSize(); // Calculate total size
  31. int itemCount = countItems(directory); // Count files and subdirectories
  32. if (size > 1024 * 1024 * 10 || itemCount > 100) { // Flag large directories
  33. System.out.println("Anomaly: Directory " + directory.getAbsolutePath() + " (Size: " + size + " bytes, Items: " + itemCount + ")");
  34. }
  35. }
  36. }
  37. private static int countItems(File directory) {
  38. int count = 0;
  39. if (directory.isDirectory()) {
  40. File[] files = directory.listFiles();
  41. if (files != null) {
  42. for (File file : files) {
  43. if (file.isFile()) {
  44. count++;
  45. } else if (file.isDirectory()) {
  46. count++;
  47. count += countItems(file); // Recursive call for subdirectories
  48. }
  49. }
  50. }
  51. }
  52. return count;
  53. }
  54. }

Add your comment