import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class ArtifactCleanup {
/**
* Cleans up artifacts of binary files for dry-run scenarios.
* Handles potential exceptions gracefully.
* @param artifactDirectory The directory containing the artifacts to clean up.
* @return True if cleanup was successful, false otherwise.
*/
public static boolean cleanupArtifacts(String artifactDirectory) {
if (artifactDirectory == null || artifactDirectory.isEmpty()) {
System.err.println("Error: Artifact directory cannot be null or empty.");
return false;
}
Path artifactPath = Paths.get(artifactDirectory);
if (!Files.exists(artifactPath)) {
System.err.println("Error: Artifact directory does not exist: " + artifactDirectory);
return false;
}
try {
File directory = artifactPath.toFile();
File[] files = directory.listFiles();
if (files != null) {
for (File file : files) {
if (file.isFile()) {
try {
Files.delete(file.toPath());
System.out.println("Deleted artifact: " + file.getAbsolutePath());
} catch (IOException e) {
System.err.println("Error deleting artifact " + file.getAbsolutePath() + ": " + e.getMessage());
// Non-critical error, continue to next file.
}
} else if (file.isDirectory()) {
try {
Files.delete(file.toPath());
System.out.println("Deleted directory: " + file.getAbsolutePath());
} catch (IOException e) {
System.err.println("Error deleting directory " + file.getAbsolutePath() + ": " + e.getMessage());
// Non-critical error, continue to next directory.
}
}
}
}
} catch (IOException e) {
System.err.println("Error listing artifacts in directory " + artifactDirectory + ": " + e.getMessage());
return false;
}
return true;
}
public static void main(String[] args) {
// Example usage:
String artifactDirectory = "temp_artifacts"; // Replace with your artifact directory
// Create the directory if it doesn't exist (for testing)
File artifactDir = new File(artifactDirectory);
if (!artifactDir.exists()) {
artifactDir.mkdir();
// Create some dummy files/directories for testing
File dummyFile = new File(artifactDirectory, "test_file.dat");
dummyFile.createNewFile();
File dummyDir = new File(artifactDirectory, "test_dir");
dummyDir.mkdir();
}
boolean success = cleanupArtifacts(artifactDirectory);
if (success) {
System.out.println("Artifact cleanup completed successfully.");
} else {
System.err.println("Artifact cleanup failed.");
}
// Clean up the test directory (optional)
// File artifactDir = new File(artifactDirectory);
// artifactDir.delete();
}
}
Add your comment