Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.477 Beiträge
 
Delphi 12 Athens
 
#5

Re: Wie eine Ordnerstruktur merken um sie später abzubilden

  Alt 20. Jan 2010, 08:57
Ich würde TFolder von Objektlist ableiten und jedem Ordnerobjekt die Information über sein übergeordnetes Verzeichnis mitgeben:
Delphi-Quellcode:
TFolder = class(TObjectList)
  constructor Create(AParent: TFolder; AName: string);
private
  FParent: TFolder;
  FName: string;
  function getAbsolutePath(): String;
public
  property AbsolutePath : String read getAbsolutePath;
  property Parent: TFolder read FParent write FParent;
  property Name: String read FName write FName;
end;

constructor TFolder.Create(AParent: TFolder; AName: string);
begin
  inherited Create;
  FParent := AParent;
  FName := AName;
  if Assigned(AParent) then
    AParent.Add(Self);
end;

function TFolder.getAbsolutePath(): String;
begin
  Result := Name;
  if Assigned(Parent) then
    Result := Parent.AbsolutePath + '\' + Result;
end;
Der Constructor braucht kein reintroduce.

Zitat von JonnyGuitar:
Muss ich hier schon hergehen und
noch 2 Objekte vom Typ TFolder erstellen und den Pointer darauf FSubdirs übergeben?
Da jedes TFolder-Objekt einen Ordner repräsentiert, natürlich auch für jeden Ordner eines erstellen.
Delphi-Quellcode:
Root := TFolder.Create(nil, 'C:\');
Parse(Root);

procedure Parse(AFolder: TFolder);
var
  sPath: string;
begin
  sPath := AFolder.AbsolutePath
  {...Schleife über alle Verzeichnisse in sPath...}
  begin
    sSubOrdnername := {...};
    SubFolder := TFolder.Create(AFolder, sSubOrdnername);
    Parse(SubFolder);
  end;
end;
  Mit Zitat antworten Zitat