import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.util.HashMap;
import java.util.Map;
class FileMetricsCollector {
public static class FileMetrics {
public long fileSize;
public int fileCount;
public long lastModified;
public FileMetrics(long fileSize, int fileCount, long lastModified) {
this.fileSize = fileSize;
this.fileCount = fileCount;
this.lastModified = lastModified;
}
}
public static FileMetrics collectMetrics(String directoryPath) {
File directory = new File(directoryPath);
FileMetrics metrics = new FileMetrics(0, 0, 0);
if (!directory.exists()) {
System.err.println("Directory not found: " + directoryPath);
return metrics; // Return default metrics if directory doesn't exist
}
if (!directory.isDirectory()) {
System.err.println("Not a directory: " + directoryPath);
return metrics; // Return default metrics if it's not a directory
}
File[] files = directory.listFiles();
if (files == null) {
System.err.println("Failed to list files in: " + directoryPath);
return metrics; // Return default metrics if listing files fails
}
metrics.fileCount = files.length;
long totalSize = 0;
for (File file : files) {
if (file.isFile()) {
try {
totalSize += file.length();
} catch (IOException e) {
System.err.println("Error getting file size for " + file.getName() + ": " + e.getMessage());
//Handle the exception, perhaps log it, but continue to the next file
continue;
}
}
}
metrics.fileSize = totalSize;
metrics.lastModified = directory.lastModified();
return metrics;
}
public static void main(String[] args) {
// Example Usage:
String directoryPath = "./temp_files"; // Replace with your directory path
// Create a temporary directory for testing
File tempDir = new File(directoryPath);
if (!tempDir.exists()) {
tempDir.mkdir();
try {
Files.write(tempDir.toPath(), "test file".getBytes());
} catch (IOException e) {
System.err.println("Error creating test file: " + e.getMessage());
}
}
FileMetrics metrics = collectMetrics(directoryPath);
System.out.println("File Metrics:");
System.out.println("Total Files: " + metrics.fileCount);
System.out.println("Total Size: " + metrics.fileSize);
System.out.println("Last Modified: " + metrics.lastModified);
}
}
Add your comment