Obrisi/napravi folder

2

Obrisi/napravi folder

offline
  • Pridružio: 13 Apr 2007
  • Poruke: 452
  • Gde živiš: Beograd

Pa probao i nije htelo da radi....
Mozda nisam nesto dobro uradio posto neznam ni zasta sluzi to ali aj mi postuj kod pa da vidim...

Dopuna: 11 Maj 2007 15:40

Evo sad sam pokuso i nece da radi...
Jesi ti probao sa praznim ili punim folderom...Sa punim nece da radi(ako moze da se kaze da je folder pun)

Nece da radi ni IncludeTrailingBackslash i PChar zajedno



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Srđan Tot
  • Am I evil? I am man, yes I am.
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Da si procitao sta ti je bobby napisao znao bi da brisanje foldera nije moguce ako folder nije prazan. Moras koristiti ili neku funkciju koja ce umesto tebe da izbrise sve sto se u folderu nalazi ili da to sam uradis.

Evo koda koji meni radi sa praznim folderom:
procedure TForm1.Button1Click(Sender: TObject); begin MkDir(   IncludeTrailingBackslash(     ExtractFilePath(Application.ExeName)) +   'Neki folder'); end; procedure TForm1.Button2Click(Sender: TObject); begin RmDir(   IncludeTrailingBackslash(     ExtractFilePath(Application.ExeName)) +   'Neki folder'); end;



offline
  • Pridružio: 13 Apr 2007
  • Poruke: 452
  • Gde živiš: Beograd

Ja sam mislio da se RemoveDir i DeleteDir razlikuju.... Confused

offline
  • Pridružio: 08 Jan 2007
  • Poruke: 279
  • Gde živiš: Srbija

@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... Wink

offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24135
  • Gde živiš: Wien

Evo ti sazvakano:
http://www.delphipages.com/threads/thread.cfm?ID=110289&G=110280

S tim da moras da uzmes u obzir da ovo nece da obrise folder ukoliko u njemu postoji neki fajl sa faNormal atributom (faAnyFile ne podrazumeva faNormal).

Dopuna: 11 Maj 2007 17:14

ja i loshmi_sr smo pisali istovremeno.
Kod njega je problem sa faNormal resen tako sto on svim fajlovima dodeljuje faArchive pre brisanja, cime se faNormal automatski ponistava.
Moglo je to i jednostavnije, ali je problem u tome sto faNormal nije ukljucen u Delphijev wrapper za WinAPI, pa mora da se koristi DWORD $00000080.

offline
  • Pridružio: 13 Apr 2007
  • Poruke: 452
  • Gde živiš: Beograd

e sad radi...
napravio sam preko koda koji za koji je bobby dao putanju, i radi...
HVALA SVIMA NA POMOCI I izvinjavam se sto sam vas cimao!!!!HvAlA

Ko je trenutno na forumu
 

Ukupno su 1228 korisnika na forumu :: 36 registrovanih, 9 sakrivenih i 1183 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., amaterSRB, Andrija357, aramis s, Buzdovan, Denaya, DonRumataEstorski, dragoljub11987, Dukelander, FOX, Istman, ivica976, Karla, kunktator, kybonacci, ladro, milenko crazy north, Mixelotti, nemkea71, nenad81, Petarvu, RJ, royst33, sasa76, Sirius, slonic_tonic, solic, Srle993, stegonosa, Tvrtko I, vlvl, vukovi, wolverined4, YugoSlav, zziko, |_MeD_|