package com.skcraft.playblock.installer.tasks;
import java.io.File;
import com.sk89q.task.Task;
import com.skcraft.playblock.installer.SetupUtils;
public class DirectoryDelete extends Task {
private final File dir;
public DirectoryDelete(File dir) {
this.dir = dir;
}
@Override
public void execute() {
fireProgressChange(-1);
fireStatusChange("Removing " + dir.getAbsolutePath() + "...");
delete(dir, dir);
}
public boolean delete(File originalParent, File dir) {
fireStatusChange("Removing " + dir.getAbsolutePath() + "...");
if (dir.exists()) {
File[] files = dir.listFiles();
if (null != files) {
for (File object : files) {
if (object.isDirectory()) {
delete(originalParent, object);
} else {
if (SetupUtils.isParent(originalParent, object)) {
fireStatusChange("Removing " + object.getAbsolutePath() + "...");
object.delete();
}
}
}
}
}
return dir.delete();
}
}