Ver Mensaje Individual
  #4  
Antiguo 08-01-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Reputación: 24
seoane Va por buen camino
Cita:
Empezado por marcoszorrilla
Se puede construir una utilidad en Delphi que realice esta función.
Precisamente al leer tu primer mensaje se me ocurrieron varias formas de hacerlo en delphi, pero luego preferí recomendar algo un poco mas maduro como SDelete.

Aunque si se trata de dar ideas, podemos dar unas cuantas. Para borrar un disco completo (tarjeta de memoria, disco usb, disquete, etc) una primera opción podría ser sobre escribir los sectores del disco varias veces con diferentes bytes ($FF, $00, $AA, $55, etc). Este método es sencillo, y si se hacen las suficientes pasadas, completamente seguro. La desventaja es que el nuevo windows vista no permite a las aplicaciones escribir sectores del disco, así que puede que nuestra aplicación se quedara pronto obsoleta.

Otra solución puede ser borrar todos los archivos del disco y crear archivos grandes dentro de el hasta ocupar de nuevo todo el espacio, repitiendo la operación varias veces. Esta es una solución bastante chapuza, y lenta, pero tiene como ventaja que no tiene ninguna restricción y la puede llevar a cabo cualquier usuario con permiso de escritura.

En cuanto a lo de borrar un solo archivo de forma segura, puede que abriendo el archivo y sobre escribiéndolo varias veces sirva. Pero tengo la duda de si al sobre escribir un archivo, windows utiliza los mismo sectores o ocupa sectores nuevos desechando los viejos. Tendríamos que hacer algunas pruebas. De todas formas puede que utilizar las funciones de la API para desfragmentar nos puedan ser útiles en este caso, ya que nos permite identificar los sectores que ocupa cada archivo, y los sectores que están libres. Aunque volveríamos a tener el problema de sobre escribir los sectores del disco.

Lo que si es seguro es que con ninguna utilidad escrita en delphi podremos destruir los datos de la partición de windows, ya que necesitamos de windows para ejecutarla. Puede que si incrustamos nuestra aplicación en un windows que arranque desde un cd como el BartPE, pero eso ya seria complicarse demasiado ...

Ahí quedan las ideas, si alguien se anima ... sino también pueden usar mi programita dump, y utilizando la función load sobre escribir los sectores de un disco o memoria usb, es una solución casera pero efectiva.
Responder Con Cita