package de.ralfebert.imageassert.utils; import java.io.File; import java.io.IOException; import java.util.logging.Logger; import org.apache.commons.io.FileUtils; public class TemporaryFolder { private final static Logger log = Logger.getLogger("TemporaryFolder"); private final String name; private File folder; public TemporaryFolder(String name) { this.name = name; } public TemporaryFolder(Object forObject) { this.name = forObject.getClass().getSimpleName(); } public File createFile(String filename) { return new File(getFolder(), filename); } public File getFolder() { if (folder == null) { try { folder = File.createTempFile(name, ""); } catch (IOException e) { throw new RuntimeIOException(e); } if (folder.exists()) { folder.delete(); } if (!this.folder.mkdirs()) { throw new RuntimeIOException(String.format( "Temporary folder '%s' could not be created: ", folder)); } log.info("Created temporary folder " + folder); } return folder; } public void dispose() { if (this.folder != null) { try { FileUtils.deleteDirectory(this.folder); } catch (IOException e) { throw new RuntimeIOException(e); } log.info("Disposed temporary folder " + folder); } } }