post icon

Eliminar ficheros con Delphi

Nuevamente hoy escribiré código que trabaja con ficheros, pero ésta vez desde Delphi. Veremos como podemos eliminar archivos del disco de a uno o varios a la vez (no recursivamente). Será un pequeño procedimiento que recibe un String que representa la ruta del fichero, y luego es convertido a PAnsiChar para el objeto que usamos.

Utilizar la API de Windows

Primeramente necesitamos hacer uso de la siguiente clase:

ShellAPI

En la sección type declaramos como procedimiento público:

1
2
3
4
5
6
7
8
type
  ...
  private
    { Private declarations }
  public
    { Public declarations }
    procedure BorrarFichero(fichero: String);
  end;

y ahora vemos el desarrollo del procedimiento:

1
2
3
4
5
6
7
8
9
10
11
12
procedure Tfrm1.BorrarFichero(fichero: String);
var
  FileInfo: TShFileOpStruct;
begin
  FileInfo.Wnd := Handle;
  FileInfo.wFunc := FO_DELETE;
  FileInfo.pFrom := PAnsiChar(fichero); // si quisieramos borrar varios ficheros podriamos poner asi: 'C:\*.bmp'
  FileInfo.pTo := nil;
  FileInfo.fFlags := FOF_NOCONFIRMATION;
 
  ShFileOperation(FileInfo);
end;

Código nativo de Delphi

Con el procedimiento anterior estabamos invocando a la API de Windows, el método alternativo es hacerlo con código nativo de Delphi y dejar que el se encargue de esta actividad.

1
2
3
4
5
procedure Tfrm.BorrarFichero(fichero: String);
begin
  if FileExists(fichero) then
    DeleteFile(fichero);
end;

Comentarios desde Facebook:

Sin Comentarios aun, puedes tú ser el primero en comentar!

Deja tu Comentario

Responder