Ver Mensaje Individual
  #4  
Antiguo 20-10-2004
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - Espańa
Posts: 18.285
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Walterdf
...Con este codigo me cambia todos los atributos de todo lo que contiene el nivel "c:\MiCarpeta" pero no de los subdirectorios y sus contenidos que hay allí adentro.
Alguna sugerencia?
Te falta implementar la recursividad; Pasa éste procedimiento a una función recursiva y la llamas desde el propio procedimiento; Prueba con ésta (hay alguna modificación).

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
 
  // Rutina para cambiar atributos
  procedure ChangeAttributes(const path:String);
  var
     search : TSearchRec;
     nFiles : integer;
     cPath : String;
  begin
    cPath:= path{'c:\MiCarpeta\'};
    nFiles:=FindFirst(cPath + '*.*', faAnyFile,  search );
    while nFiles = 0 do begin
      if Search.Attr = faDirectory then begin
        if (Search.Name<>'.') and (Search.Name<>'..') then begin
          SetFileAttributes(PChar(cPath + search.Name),FILE_ATTRIBUTE_NORMAL);
          // llamada recursiva
          ChangeAttributes(Path + search.Name + '\');
        end;
      end
      else begin
        SetFileAttributes(PChar(cPath + search.Name),FILE_ATTRIBUTE_NORMAL);
        // llamada recursiva
        ChangeAttributes(Path + search.Name + '\');
      end;
      // Siguiente
      nFiles:=FindNext(Search);
    end;
  end;
begin
  ChangeAttributes(Edit1.Text);
end;
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita