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 07-04-2005
Turboleta Turboleta is offline
Miembro
 
Registrado: may 2003
Ubicación: Valencia
Posts: 26
Poder: 0
Turboleta Va por buen camino
En este caso no queda ningún archivo. El directorio está totalmente vacío y aparece ese error cuando intento borrarlo.
Si, una vez teminada la desinstalación, vuelvo a utilizar el desinstalador entonces ya no me da ningún error y borra todos los subdirectorios.

Román, de todas formas, investigaré por el camino que me indicas a ver si resuelvo algo. Gracias
Responder Con Cita
  #2  
Antiguo 07-04-2005
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Después de borrar los archivos en una carpeta, cambia el directorio a una superior y luego trata de borrar la carpeta en cuestión.

Algo así más o menos:
Código:
  ChDir('Archivos de programa\La carpeta');
  BorrarArchivos;
  ChDir(Archivos de programa');
  BorrarCarpeta('La Carpeta')
Responder Con Cita
  #3  
Antiguo 07-04-2005
Turboleta Turboleta is offline
Miembro
 
Registrado: may 2003
Ubicación: Valencia
Posts: 26
Poder: 0
Turboleta Va por buen camino
Marcos, justamente eso es lo que he hecho y no hay manera. De hecho el desinstalador está dos niveles por encima de los diretorios que quiero borrar. Le doy vueltas y más vueltas y no le encuentro el fallo.

Gracias.
Responder Con Cita
  #4  
Antiguo 07-04-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿Por qué no nos muestras un poco del código que usas, particularmente de la parte donde da el fallo?

// Saludos

pd: si escribes el código por favor usa las etiquetas [delphi] para que quede bien formado.
Responder Con Cita
  #5  
Antiguo 08-04-2005
Turboleta Turboleta is offline
Miembro
 
Registrado: may 2003
Ubicación: Valencia
Posts: 26
Poder: 0
Turboleta Va por buen camino
Código:
procedure TForm1.BorrarDirectorios(Sender: TObject);
var  ListDirCol,ListDirCur:TstringList;
     ErrorBuscando, n, e:integer;
     NomDir, DirCol, DirCurs, Path, Path2: string;
     AtributArchiv: TSearchRec;
begin
  path:= StrSourceDir ;
  ListDirCol := TStringList.Create;
  ErrorBuscando:= findFirst(Path + 'coleg*',faDirectory,AtributArchiv);
  while ErrorBuscando = 0 do
    begin
      NomDir:=  extractFileName(AtributArchiv.name);
      ListDirCol.add(NomDir);
      ErrorBuscando:= findnext(AtributArchiv);
    end;

  ListDirCur := TStringList.Create;
  for n:= 0 to ListDirCol.count - 1  do
    begin
      DirCol:= ListDirCol.strings[n];      //se saca el directorio del cole
                                           // y se busca el dir del curso academico
      ErrorBuscando:= findFirst(Path +  DirCol + '\C*',faDirectory,AtributArchiv);
      while ErrorBuscando = 0 do        // ej.: C004/005
        begin
          NomDir:=  extractFileName(AtributArchiv.name);
          ListDirCur.add(NomDir);
          ErrorBuscando:= findnext(AtributArchiv);
        end;
   
      for e:= 0 to ListDirCur.count - 1 do
        begin
          DirCurs:= ListDirCur.strings[e];    // se saca del dir del curso academico
          path2:= Path +  DirCol + '\' + DirCurs + '\'; // ej.: C004005
          if DirExist(path2 + 'Cast') then
             BorraDir(path2 + 'Cast');
           if DirExist(path2 + 'Val') then
             BorraDir(Path2 +  'Val');
          ChDir(path);
          path2:= path + DirCol + '\' + DirCurs;
          BorraDir(Path2);
        end;
    end;
  FindClose(AtributArchiv);
  ListDirCol.free;          // se libera la mem utilizada x ListDirCol, ListDirCur
  ListDirCur.free;
end;

Previamente se han borrado todos los archivos del programa.

Después intenta borrar los directorios vacíos, comenzando por los de nivel más bajo.
No se produce ningún error porque los deshabilito con {$I-} pero no se borran los subdirectorios.
Los niveles de directorios son:
-Directorio del programa (en él está el desinstalador. Es el único que no se debe borrar)
-COLEG1 (Directorio hijo)
-C004005 (Dir hijo de coleg1)
-CAST, VAL (dir hijos de C004005)

Un saludo
Responder Con Cita
  #6  
Antiguo 08-04-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
A ver, me cuesta trabajo seguir tu código en estos momentos por lo que te voy a proponer una alternativa al método que estás usando y está en este mensaje http://www.clubdelphi.com/foros/show...84&postcount=3

// Saludos
Responder Con Cita
  #7  
Antiguo 08-04-2005
Turboleta Turboleta is offline
Miembro
 
Registrado: may 2003
Ubicación: Valencia
Posts: 26
Poder: 0
Turboleta Va por buen camino
Román, la alternativa que me propones ya la había probado antes y tampoco funcionó.
Me daba un error indicando que el directorio está compartido o en uso y ni una cosa ni otra. De todas formas, gracias. Seguiré dándole vueltas hasta que encuentre la causa.
No me suelo dar por vencido fácilmente.

// Saludos.
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 19:39:45.


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