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
Started by
razadi
, Oct 13 2009 09:55 AM
5 replies to this topic
#1
Posted 13 October 2009 - 09:55 AM
#2
Posted 13 October 2009 - 10:00 AM
la API DeleFile de windows:
Saludos.
delphi
Windows.DeleteFile('C:\Archivo.txt');
Saludos.
#3
Posted 13 October 2009 - 10:17 AM
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
Posted 13 October 2009 - 10:19 AM
Qué raro a mí me funciona perfecto si lo coloco directo, prueba con DeleteFileA.
Saludos.
Saludos.
#5
Posted 13 October 2009 - 10:23 AM
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
Posted 13 October 2009 - 11:36 AM
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.