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

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-06-2015
alopete alopete is offline
Miembro
 
Registrado: sep 2007
Posts: 95
Poder: 17
alopete Va por buen camino
Error al borrar carpetas

Buenas,

Trabajo con Delphi 2006 y me encuentro con este problema:

Tengo que borrar una carpeta por código con todo su contenido (he probado ya todas las funciones recursivas y demás que he encontrado en foros), pero no lo elimina hasta que cierro la aplicación. No sé si es porque se queda en la memoria o así, pero he comprobado que el current directory es C:\ para asegurarme de que no se queda en algún directorio que ya esté eliminado. El código de la función que tengo ahora es el siguiente:

Código Delphi [-]
function RemoveFolder(const Folder : string): Boolean;
var
  szFile : string;
  SearchRec: TSearchRec;
  szSearchPath : string;
  nResult : integer;
  Attributes: LongWord;
  pname: pchar;
begin
  Result := False;
  szSearchPath := Folder;
  nResult := FindFirst(szSearchPath + '\*.*', faAnyFile, SearchRec);
  try
    while nResult = 0 do
    begin
      if('.' <> SearchRec.Name[1]) then
      begin
        szFile := szSearchPath + '\' + SearchRec.Name;
        FileSetAttr(szFile, 0);
        DeleteFile(PAnsiChar(szFile));
      end;
      nResult := FindNext(SearchRec);
    end;
    Result := True;
  finally
    SysUtils.FindClose(SearchRec);
  end;
  pname := PChar(Folder);
  Attributes := GetFileAttributes(pname);
  if Attributes = $FFFFFFFF then
    raise EInOutError.Create(SysErrorMessage(GetLastError));
  if (Attributes and FILE_ATTRIBUTE_READONLY) <> 0 then
    SetFileAttributes(pname, Attributes and not FILE_ATTRIBUTE_READONLY);
  Clipboard.close;
  Clipboard.Open;
  if Windows.RemoveDirectory(pname) = False then
    raise EInOutError.Create(SysErrorMessage(GetLastError)); 
end;

Gracias de antemano.
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
Es posible compartir carpetas por Internet utilizando compartir carpetas? JuanErasmo Windows 5 12-02-2007 20:45:17
error al borrar un registro noshy SQL 1 12-05-2006 20:13:07
Borrar carpetas en delphi7 Kivan Varios 12 12-12-2005 19:26:44
Error al Borrar Una Tabla jmlifi Firebird e Interbase 2 20-04-2005 08:47:46


La franja horaria es GMT +2. Ahora son las 07:14:50.


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