Skip to content

Delphi delete file

Así como vimos, en artículos anteriores, como mover, borrar y copiar una carpeta, ahora toca el turno de los files (archivos).

En este artículo veremos como borrar un archivo desde Delphi (Delphi delete file), para ello deberemos poner en uso la unit System.SysUtils.

Dentro de SysUtils tenemos la función DeleteFile, que elimina un archivo (pasado como parámetro) del disco, pero cuidado, lo borra completamente y no lo vamos a poder recuperar.

Es una función muy fácil de utilizar, solo debemos pasar como parámetro la ruta y el nombre del archivo, y nos devolverá True si el borrado fue exitoso o false si no lo fue.

Declaración de la función de Delphi SysUtils.DeleteFile

La declaración de la Función DeleteFile() en Delphi es la siguiente:

Uses
  System.SysUtils;

function DeleteFile(const FileName: string): Boolean;

Como se observa en la declaración, solo tenemos un parámetro llamado FileName, de tipo string sonde pasaremos la ruta competa y el nombre del archivo a eliminar. La misma nos dará un resultado tipo Boolean, donde devuelve True si la eliminación del archivo fue exitoso, o False si se ha producido algún error, como por ejemplo que el archivo ya no exista.

Ejemplo de DeleteFile()

El siguiente ejemplo elimina un archivo ubicado en la unidad “c:/file.txt”:

Uses
  System.SysUtils;

... 

procedure TForm1.Button1Click(Sender: TObject);
var
  FileName: string;
begin
  // Ruta y nombre del archivo a eliminar
  Filename:= 'c:/file.txt';
  // Verificamos primero si el archivo existe
  if FileExists(FileName) then
  begin
    // Preguntamos si quiere eliminar el archivo
    if MessageDlg(('Realmente desea eliminar el archivo ' + ExtractFileName(FileName) + '?'),
     TMsgDlgType.mtConfirmation, [TMsgDlgBtn.mbYes, TMsgDlgBtn.mbNo], 0, TMsgDlgBtn.mbNo) = IDYes then
    begin
      // Eliminamos el archivo
      if DeleteFile(FileName) then
        MessageDlg(('Se ha eliminado el archivo ' + ExtractFileName(FileName) + ' con éxito.'),
          TMsgDlgType.mtConfirmation, [TMsgDlgBtn.mbOK], 0)
      else
        MessageDlg(('Se ha producido un error al eliminar el archivo ' + ExtractFileName(FileName) + '.'),
          TMsgDlgType.mtConfirmation, [TMsgDlgBtn.mbOK], 0);
    end;
  end
  else
  begin
    // Mensaje de error si el archivo no existe
    MessageDlg(('El archivo ' + ExtractFileName(FileName) + ' no existe.'),
      TMsgDlgType.mtConfirmation, [TMsgDlgBtn.mbOK], 0);
  end;
end;