Tehnika Krstarice > Programiranje > Delphi - Kreiranje stabla direktorijuma

Delphi - Kreiranje stabla direktorijuma

23.01.2001.

U prilogu ćemo videti kako da kreiramo celo stablo direktorijuma, odnosno kako da kreiramo direktorijum "C:\Prvi\Drugi\Treci" (znači direktorijum Treci), kad direktorijumi "Prvi" i "Drugi" ne postoje.

procedure KreirajDir(Dir: String);
  function Prethodni(Sta: String; Gde: String): Integer;
  var
    Ind : Integer;

  begin
    Result := 0;

    for Ind := (Length(Gde)-Length(Sta)+1) downto 1 do
        if Copy(Gde, Ind, Length(Sta)) = Sta then
       begin
           Result := Ind;
           Break;
        end;
  end;

var
  PrethodniDir : String;
  Ind     : Integer;

begin
  if Copy(Dir,2,1) <> ':' then
     if Copy(Dir,3,1) <> '\' then
        if Copy(Dir,1,1) = '\' then
           Dir := 'C:'+Dir
        else
           Dir := 'C:\'+Dir
     else
        Dir := 'C:'+Dir;

  if not DirectoryExists(Dir) then
  begin
     // ukoliko direktorijum ne postoji, pronadji naziv prethodnog

     Ind     := Prethodni('\', Dir);         //  pozicija prethodnog '\'
     PrethodniDir := Copy(Dir, 1, Ind-1);    //  prethodni direktorijum

     // ukoliko prethodni dir. ne postoji,
     // propusta se rekurzivno kroz proceduru...
     if not DirectoryExists(PrethodniDir) then
        KreirajDir(PrethodniDir);

     // u ovoj tacki prethodni dir. mora da postoji.
     // Tako da ce se kreirati direktorijum u "Dir" varijabli.
     CreateDir(Dir);
  end;
end;

Kako se koristi ova procedura, pa jednostavno je negde u kodu pozovemo sa:

KreirajDir('\Prvi\Drugi\Treci');

Kada se pozove procedura, ispituje se string varijabla stabla direktorijuma, a zatim se na početak dodaje "C:\". Potom se ispituje da li uopšte postoji takav direktorijum na disku, ako postoji procedura dolazi do kraja, a ako ne postoji prolazi se kroz stablo direktorijuma sve do root-a, kada se kreira prvi, pa potom i ostali, sve do poslednjeg i to rekurzivno.

Preporučite ovaj članak

Članak još uvek nije ocenjen.