Saludos comuneros alguna función en delphi que permita borrar un archivo definitivamente y no lo mande a la papelera.
Saludos

[RESUELTO] Eliminar un archivo sin enviarlo a la papelera
Comenzado por
razadi
, oct 13 2009 09:55
5 respuestas en este tema
#1
Escrito 13 octubre 2009 - 09:55
#2
Escrito 13 octubre 2009 - 10:00
la API DeleFile de windows:
Saludos.
delphi
Windows.DeleteFile('C:\Archivo.txt');
Saludos.
#3
Escrito 13 octubre 2009 - 10:17
Que tal enecumene, tks por la respuesta pero que crees?
No me furula "funciona", estoy poneindo lo siguiente:
obviamente tengo la unit Windows en el uses y nomas nop.
de hecho ni siquiera elimina el archivo. a que se deberá?
No me furula "funciona", estoy poneindo lo siguiente:
delphi
Windows.DeleteFile(PChar(ExtractFilePath(Application.ExeName)+sSysFile));
obviamente tengo la unit Windows en el uses y nomas nop.
de hecho ni siquiera elimina el archivo. a que se deberá?
#4
Escrito 13 octubre 2009 - 10:19
Qué raro a mí me funciona perfecto si lo coloco directo, prueba con DeleteFileA.
Saludos.
Saludos.
#5
Escrito 13 octubre 2009 - 10:23
Ya ví cual es el problema, digo no tendría por que!, pero lo que sucede es que el archivo que quiero borrar esta con la propiedad "de solo lectura", le quite esta propiedad y efectivamente lo elimina sin pasar por la papelera, tks amigo.
#6
Escrito 13 octubre 2009 - 11:36
Hola razadi, quise hacer un code que haga borrar aunque tenga atributos usando dos APIs más como lo son GetFileAttributes y SetFileAttributes, pero no me furula como dices
, dejo el code para que tengas al menos una idea clara:
Aquí la lista de atributos disponibles.
Saludos.

delphi
procedure TForm1.Button1Click(Sender: TObject); var Status: DWORD; begin Status := GetFileAttributes(PChar(ExtractFilePath(Application.ExeName)+sSysFile)); case Status of FILE_ATTRIBUTE_HIDDEN : SetFileAttributes(PChar(ExtractFilePath(Application.ExeName)+sSysFile), FILE_ATTRIBUTE_NORMAL); FILE_ATTRIBUTE_READONLY : SetFileAttributes(PChar(ExtractFilePath(Application.ExeName)+sSysFile), FILE_ATTRIBUTE_NORMAL); end; Windows.DeleteFile(PChar(ExtractFilePath(Application.ExeName)+sSysFile)); end;
Aquí la lista de atributos disponibles.
Saludos.