1. import java.io.File;
  2. import java.io.IOException;
  3. import java.nio.file.Files;
  4. import java.util.HashMap;
  5. import java.util.Map;
  6. class FileMetricsCollector {
  7. public static class FileMetrics {
  8. public long fileSize;
  9. public int fileCount;
  10. public long lastModified;
  11. public FileMetrics(long fileSize, int fileCount, long lastModified) {
  12. this.fileSize = fileSize;
  13. this.fileCount = fileCount;
  14. this.lastModified = lastModified;
  15. }
  16. }
  17. public static FileMetrics collectMetrics(String directoryPath) {
  18. File directory = new File(directoryPath);
  19. FileMetrics metrics = new FileMetrics(0, 0, 0);
  20. if (!directory.exists()) {
  21. System.err.println("Directory not found: " + directoryPath);
  22. return metrics; // Return default metrics if directory doesn't exist
  23. }
  24. if (!directory.isDirectory()) {
  25. System.err.println("Not a directory: " + directoryPath);
  26. return metrics; // Return default metrics if it's not a directory
  27. }
  28. File[] files = directory.listFiles();
  29. if (files == null) {
  30. System.err.println("Failed to list files in: " + directoryPath);
  31. return metrics; // Return default metrics if listing files fails
  32. }
  33. metrics.fileCount = files.length;
  34. long totalSize = 0;
  35. for (File file : files) {
  36. if (file.isFile()) {
  37. try {
  38. totalSize += file.length();
  39. } catch (IOException e) {
  40. System.err.println("Error getting file size for " + file.getName() + ": " + e.getMessage());
  41. //Handle the exception, perhaps log it, but continue to the next file
  42. continue;
  43. }
  44. }
  45. }
  46. metrics.fileSize = totalSize;
  47. metrics.lastModified = directory.lastModified();
  48. return metrics;
  49. }
  50. public static void main(String[] args) {
  51. // Example Usage:
  52. String directoryPath = "./temp_files"; // Replace with your directory path
  53. // Create a temporary directory for testing
  54. File tempDir = new File(directoryPath);
  55. if (!tempDir.exists()) {
  56. tempDir.mkdir();
  57. try {
  58. Files.write(tempDir.toPath(), "test file".getBytes());
  59. } catch (IOException e) {
  60. System.err.println("Error creating test file: " + e.getMessage());
  61. }
  62. }
  63. FileMetrics metrics = collectMetrics(directoryPath);
  64. System.out.println("File Metrics:");
  65. System.out.println("Total Files: " + metrics.fileCount);
  66. System.out.println("Total Size: " + metrics.fileSize);
  67. System.out.println("Last Modified: " + metrics.lastModified);
  68. }
  69. }

Add your comment