package com.revolsys.io; import java.io.File; import java.util.ArrayList; import java.util.List; import javax.annotation.PostConstruct; import org.springframework.core.io.Resource; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.core.io.support.ResourcePatternResolver; public class DeleteFiles { private static final ResourcePatternResolver RESOLVER = new PathMatchingResourcePatternResolver(); private boolean deleteDirectories = true; private List<String> filePatterns = new ArrayList<>(); @PostConstruct public void deleteFiles() { for (String filePattern : this.filePatterns) { if (!filePattern.startsWith("file:")) { filePattern = "file:" + filePattern; } try { for (final Resource resource : RESOLVER.getResources(filePattern)) { final File file = resource.getFile(); if (file.isDirectory()) { if (this.deleteDirectories) { if (!FileUtil.deleteDirectory(file, true)) { throw new RuntimeException("Unable to delete directory: " + file); } } } else if (file.exists()) { if (!file.delete()) { throw new RuntimeException("Unable to delete file: " + file); } } } } catch (final Throwable e) { throw new RuntimeException("Cannot delete files: " + filePattern, e); } } } public List<String> getFilePatterns() { return this.filePatterns; } public boolean isDeleteDirectories() { return this.deleteDirectories; } public void setDeleteDirectories(final boolean deleteDirectories) { this.deleteDirectories = deleteDirectories; } public void setFilePattern(final String filePattern) { this.filePatterns.add(filePattern); } public void setFilePatterns(final List<String> filePatterns) { this.filePatterns = new ArrayList<>(filePatterns); } }