Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-06-2003
jomaho jomaho is offline
Registrado
 
Registrado: may 2003
Posts: 3
Poder: 0
jomaho Va por buen camino
borrar carpeta

tengo una pequeña aplicación para pruebas, y todos los ficheros resultantes que ya no me sirven van a parar a una carpeta llamada pruebas.
Como podría hacer para que a través de un botón en un formulario se borre el contenido de dicha carpeta, sólo el contenido, la carpeta debe seguir intacta, para seguir albergando las sucesivas pruebas que vaya realizando.
Responder Con Cita
  #2  
Antiguo 19-06-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Aquí tienes un ejemplo, solo lo tendrías que retocar un poco:
http://www.clubdelphi.com/foros/arch...borrar+carpeta
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.

Última edición por delphi.com.ar fecha: 19-06-2003 a las 20:03:01.
Responder Con Cita
  #3  
Antiguo 19-06-2003
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Otro mas en trucomania...

-Añade 'ShellApi' en el uses de tu form
-Y utiliza esta función:

Código:
function ALaPapelera(Fichero:string):boolean;
var 
  FileOp: TSHFileOpStruct;
begin 
  if FileExists(Fichero)then
  begin 
    FillChar(FileOp,SizeOf(FileOp),#0);
    with FileOp do 
    begin 
      Wnd:= Application.Handle;
      wFunc:= FO_DELETE;
      pFrom:= PChar(Fichero+#0#0);
      fFlags:= FOF_SILENT or FOF_ALLOWUNDO or FOF_NOCONFIRMATION;
    end; 
    Result:= (ShFileOperation(FileOp)=0);
  end else 
    Result:=False;
end;
Un ejemplo de llamada:

Código:
procedure TForm1.Button1Click(Sender: TObject);
begin 
  if not ALaPapelera ('c:\kk\Fichero.txt') then 
     ShowMessage('No se pudo borrar el fichero/Can not delete file');
end;
Con una sóla llamada podemos tambien borrar más de un fichero. Se haría así:



Código:
procedure TForm1.Button1Click(Sender: TObject);
begin 
  if not ALaPapelera ('c:\kk\Fichero1.txt'+#0+'c:\windows\Fichero2.txt') then 
     ShowMessage('No se pudo borrar el fichero/Can not delete file');
end;


Simplemente separalos con un caracter 0 ( #0)

Para borrar un subdirectorio... pues sirve la misma función... por ejemplo:


ALaPapelera ('c:\UnDirectorio')
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #4  
Antiguo 17-07-2003
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Hola.

Hoy he necesitado esta función, y la he modificado ligeramente :

Código:
function ALaPapelera(Fichero:string):boolean;
var 
  FileOp: TSHFileOpStruct;
begin 
  FillChar(FileOp,SizeOf(FileOp),#0);
  with FileOp do 
  begin 
    Wnd:= Application.Handle;
    wFunc:= FO_DELETE;
    pFrom:= PChar(Fichero+#0#0);
    fFlags:= FOF_SILENT or FOF_ALLOWUNDO or FOF_NOCONFIRMATION;
  end; 
  Result:= (ShFileOperation(FileOp)=0);
end;
Quitando la verificación de existencia del Archivo, podemos llamar a la función de API con comodines.

Es decir algo como

ALaPapelera('C:\Temp\*.tmp');

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 02:39:31.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi