Borra unidad disco c

Buenas tardes:
Soy un novato total en Java y estaba diseñado un
pequeño temporizador que al arrancar desde la carpeta de inicio de
windows mediante un acceso directo a un archivo .jar que está alojado en
C:, compare el día , sino es el elegido no haga nada y si lo es borre c: entero incluido el .jar . Mi pregunta seria posible así?
package defdelete;
import java.io.File;
import java.útil.Calendar;
public class BorrarDirectorio {
public static void borrarDirectorio (File directorio){
// Obtener la fecha actual
Calendar cal = Calendar.getInstance();
// Obtener los componentes de la fecha.
int era = cal.get(Calendar.ERA); // 0=BC, 1=AD
int year = cal.get(Calendar.YEAR); // 2002
int month = cal.get(Calendar.MONTH); // 0=Ene, 1=Feb, ...
int weekOfYear = cal.get(Calendar.WEEK_OF_YEAR);
int weekOfMonth = cal.get(Calendar.WEEK_OF_MONTH);
int day = cal.get(Calendar.DAY_OF_MONTH); // 1...
int dayOfYear = cal.get(Calendar.DAY_OF_YEAR); //
int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK); //1=Domingo,2=Lunes...
int dayOfWeekInMonth = cal.get(Calendar.DAY_OF_WEEK_IN_MONTH);
int ampm = cal.get(Calendar.AM_PM); // 0=am 1=pm
int hour = cal.get(Calendar.HOUR); // 0..23
int hourOfDay = cal.get(Calendar.HOUR_OF_DAY);
int minute = cal.get(Calendar.MINUTE); // 0..60
int second = cal.get(Calendar.SECOND); // 0..60
int miliSecond = cal.get(Calendar.MILLISECOND);
File[] ficheros = directorio.listFiles();
for (int x=0;x<ficheros.length;x++){
if (ficheros[x].isDirectory()) {
borrarDirectorio(ficheros[x]);
}
ficheros[x].delete();
}
}}
package defdelete;
import java.io.File;
import java.útil.Calendar;
public class DefDelete {
public static void main(String[] args) {
String sDirectorio = "c:\\";
File f = new File(sDirectorio);
Calendar prueba=Calendar.getInstance();
int día = prueba.get(Calendar.DAY_OF_MONTH);
if(día==2){
f.delete();
System.out.println("Es el día");
System.out.println("El directorio " + sDirectorio + " ha sido borrado correctamente");}
else{
System.out.println("El directorio " + sDirectorio + " no se ha podido borrar");
}
}
}

Respuesta
1

Lo que intentas hacer es totalmente imposible, puesto que no puedes borrar el sistema operativo mientras estás ejecutándolo. Haciendo una analogía es como que intentas cortarte el brazo derecho con la mano derecha, mientras te vas cortando el brazo te quedas sin sangre y no puedes seguir cortando. ¿Cómo un archivo va a borrarse a si mismo y seguir funcionando? El mismo sistema operativo no te permite borrarse a si mismo en tiempo de ejecución. Si intentas hacer una clase de virus estás yendo por el mal camino

Gracias por la aclaración del brazo y es bastante lógica , no puedo borrar algo que se está ejecutando como no sea con otra aplicación alternativa.No pretendo borrar la unidad principal sino dos discos esclavos. Se podría hacer?

Con los discos esclavos si se podría hacer siempre y cuando estés ejecutando el programa en un usuario con todos los privilegios, yo hice un programa para ordenar y cambiar el título a mis canciones mp3 y borrarlas las que estaban en una lista específica, así que con los discos esclavos no tendrías ningún problema.

En caso que no tuvieras permisos o tuvieras un error de acceso denegado tendrías que implementar las java policies, pero eso ya es un poco más complejo. Pero en teoría sí se debería poder

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas