@LittleHacker
Moram priznati da malo konfuzno postavljaš pitanja.
Kreiranje stabla foldera:
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;
//kreiranje direktorijuma
procedure TForm1.Button1Click(Sender: TObject);
begin
KreirajDir('\Prvi\Drugi\Treci');
end;
Naravno, ovo može lepše da se napiše, po potrebi programa.
Brisanje foldera sa fajlovima:
...
function MyRemoveDir(sDir : String) : Boolean;
var
iIndex : Integer;
SearchRec : TSearchRec;
sFileName : String;
begin
Result := False;
sDir := sDir + '\*.*';
iIndex := FindFirst(sDir, faAnyFile, SearchRec);
while iIndex = 0 do begin
sFileName := ExtractFileDir(sDir)+'\'+SearchRec.Name;
if SearchRec.Attr = faDirectory then begin
if (SearchRec.Name <> '' ) and
(SearchRec.Name <> '.') and
(SearchRec.Name <> '..') then
MyRemoveDir(sFileName);
end else begin
if SearchRec.Attr <> faArchive then
FileSetAttr(sFileName, faArchive);
if NOT DeleteFile(sFileName) then
ShowMessage('Ne mogu da obrisem ' + sFileName);
end;
iIndex := FindNext(SearchRec);
end;
FindClose(SearchRec);
RemoveDir(ExtractFileDir(sDir));
Result := True;
end;
//koriscenje
...
if not MyRemoveDir('D:\myDir') then
ShowMessage('Ne mogu da obrisem folder!');
...
Sad osmisli kako ćeš zadati lokaciju za kreiranje i brisanje. Ne bi trebalo biti komplikovano.
BTW, internet i google je čudo...
|