Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #6  
Antiguo 06-04-2015
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 23
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
jbecerra,

Cita:
Empezado por jbecerra
...¿Existe alguna función que permita eliminar una carpeta y todo su contenido?...Ya lo solucione...


Revisa este código:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ShellAPI;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function DeleteDirectory(const DirectoryName: String) : Boolean;
var
   SR: TSearchRec;
begin
   try
      if FindFirst(DirectoryName + '\*.*', faAnyFile, SR) = 0 then
      repeat
         if (SR.Attr and faDirectory = faDirectory) and (SR.Name <> '.') and (SR.Name <> '..') then
            DeleteDirectory(IncludeTrailingPathDelimiter(DirectoryName) + SR.Name);

         if (SR.Attr and faArchive = faArchive) then
            DeleteFile(DirectoryName + '\' + SR.Name);
      until FindNext(SR) <> 0;
      RemoveDir(DirectoryName);
      Result := False;
   finally
      FindClose(SR);
      Result := True;
   end;
end;

function RemoveFolder(const FolderName : String) : Boolean;
var
   SI: TSHFileOpStructA;
begin
   with SI do
   begin
      Wnd := HInstance;
      wFunc := FO_DELETE;
      pFrom := PChar(FolderName + #0);
      pTo := nil;
      fFlags := FOF_NOCONFIRMATION or FOF_SILENT;
   end;
   SHFileOperation(SI);
   if not SI.fAnyOperationsAborted then
      Result := True
   else
      Result := False;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   if DeleteDirectory('C:\TestRemoveFolder1') then
      MessageDlg('Directorio Removido Satisfactoriamente',mtInformation,[mbok],0)
   else
      MessageDlg('Error en Delete de Directorio',mtError,[mbok],0)
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
   if RemoveFolder('C:\TestRemoveFolder2') then
      MessageDlg('Directorio Removido Satisfactoriamente',mtInformation,[mbok],0)
   else
      MessageDlg('Error en Delete de Directorio',mtError,[mbok],0)
end;

end.
El código anterior en Delphi 7 sobre Windows 7 Professional x32, Permite remover de forma recursiva un directorio del sistema de archivos de Windows por medio de dos funciones distintas pero equivalentes a nivel funcional.

Revisa este código:
Código Delphi [-]
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
var
   DirectoryName : String;

begin

  DirectoryName := 'C:\TestRemoveFolder';

  if DirectoryExists(DirectoryName) then
  begin
     DeleteDirectory(DirectoryName,True);
     RemoveDir(DirectoryName);
     MessageDlg('Directorio Removido',mtInformation,[mbok],0)
  end
  else
     MessageDlg('Directorio No Existe',mtError,[mbok],0)

end;

end.
El código anterior en Lazarus Versión 1.2.6 FPC Version 2.6.4 bajo Windows 7 Professional x32, Permite remover de forma recursiva un directorio del sistema de archivos de Windows.

Te sugiero revisar nuevamente la Guía de estilo de los foros.

¡Gracias por tu cooperación!

Saludos,

Nelson.

Última edición por nlsgarcia fecha: 07-04-2015 a las 16:18:59.
Responder Con Cita
 



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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Copiar, mover y borrar una carpeta y todo su contenido dec Trucos 6 01-04-2015 19:33:46
Como borrar una carpeta del regedit desde mi Aplicacion carlosprotos Varios 2 25-11-2014 02:10:20
Como borrar los archivos de la carpeta Windows\Temp\ JoAnCa Varios 4 02-02-2011 16:44:55
Borrar archivos dentro de carpeta ØnLy Varios 1 23-11-2010 06:36:55
borrar carpeta jomaho Varios 3 17-07-2003 01:16:31


La franja horaria es GMT +2. Ahora son las 21:18:52.


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