Ir al contenido


Foto

[RESUELTO] Eliminar un archivo sin enviarlo a la papelera


  • Por favor identifícate para responder
5 respuestas en este tema

#1 razadi

razadi

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 681 mensajes
  • LocationMéxico D.F.

Escrito 13 octubre 2009 - 09:55

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

Saludos
  • 0

#2 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 13 octubre 2009 - 10:00

la API DeleFile de windows:



delphi
  1. Windows.DeleteFile('C:\Archivo.txt');



Saludos.
  • 0

#3 razadi

razadi

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 681 mensajes
  • LocationMéxico D.F.

Escrito 13 octubre 2009 - 10:17

Que tal enecumene, tks por la respuesta pero que crees?

No me furula "funciona", estoy poneindo lo siguiente:



delphi
  1. 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á?


  • 0

#4 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 13 octubre 2009 - 10:19

Qué raro a mí me funciona perfecto si lo coloco directo, prueba con DeleteFileA.

Saludos.
  • 0

#5 razadi

razadi

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 681 mensajes
  • LocationMéxico D.F.

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.


  • 0

#6 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

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 :p , dejo el code para que tengas al menos una idea clara:



delphi
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. var Status: DWORD;
  3. begin
  4. Status := GetFileAttributes(PChar(ExtractFilePath(Application.ExeName)+sSysFile));
  5.  
  6. case Status of
  7.   FILE_ATTRIBUTE_HIDDEN  : SetFileAttributes(PChar(ExtractFilePath(Application.ExeName)+sSysFile), FILE_ATTRIBUTE_NORMAL);
  8.  
  9.   FILE_ATTRIBUTE_READONLY : SetFileAttributes(PChar(ExtractFilePath(Application.ExeName)+sSysFile), FILE_ATTRIBUTE_NORMAL);
  10. end;
  11.  
  12.   Windows.DeleteFile(PChar(ExtractFilePath(Application.ExeName)+sSysFile));
  13. end;



Aquí la lista de atributos disponibles.

Saludos.
  • 0




IP.Board spam blocked by CleanTalk.