Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Šetanje kroz fajlove u okviru foldera?

[es] :: Pascal / Delphi / Kylix :: Šetanje kroz fajlove u okviru foldera?

[ Pregleda: 2109 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Divjak
Vladimir Divjak
Student

Član broj: 4783
Poruke: 535
*.zrenjanin.beotel.net.



+1 Profil

icon Šetanje kroz fajlove u okviru foldera?28.09.2006. u 01:20 - pre 213 meseci
Molim vas da mi neko objasni kako da najjednostavniji način uradim sledeće:

Pronađem sve fajlove određene ekstenzije u okviru datog foldera i njegovih subfoldera (nadam se da za ovo postoji neka WinAPI funkcija)
Zatim bi ih otvarao, načinio neke izmene i zatvarao... // ovaj deo znam.

Dakle treba mi API funkcija za dobijanje liste putanja do fajlova određene ekstenzije...
Ako subfolderi čine problem, mogu i sve da ih kopiram u jedan.

Hvala!
And don't be mad at me for crying for humanity,
call it pretensions but I got good intentions,
to keep my sanity, I'm hoping, fuck, there's gotta be
an answer to their strategies and their evil inventions... ~Looptroop
 
Odgovor na temu

Vdjuric
Vladimir Djuric
student
Beograd

Član broj: 20863
Poruke: 64
*.wireless.org.yu.

Sajt: www.marettasoftware.com


Profil

icon Re: Šetanje kroz fajlove u okviru foldera?28.09.2006. u 03:01 - pre 213 meseci
Treba da napravis rekurzivnu proceduru. Evo ti neka funkcija koja brise direktorijum sa svim fajlovima...Davno sam je pravio, verovatno bi imalo sta da se doradjuje..., ali posluzice ti kao kostur za resavanje tvog problema.
mislim da treba da u uses listu ukljucis SysUtils i FileCTRL, ali nisam siguran.

Code:

Function EraseDir(Source: String): Integer;
Var
 StartDir     :String;
 DirCount     :Integer;

 Procedure ProcessDelDir(DName: String);
 Var
  NewPath     :String;
  FInfo       :TSearchRec;
  ErrCode     :Integer;
 Begin
  Inc(DirCount);
  ErrCode:=FindFirst(DName+'\*.*', FaAnyFile, FInfo);
  If (ErrCode <> 0) Then Exit;

  Application.ProcessMessages;

  While ErrCode = 0
   Do Begin
       Application.ProcessMessages;

       If ((FInfo.Attr And FaDirectory) = FaDirectory)
        Then Begin
              If (FInfo.Name <> '.')And(FInfo.Name <> '..')
               Then Begin
                     NewPath:=DName+'\'+FInfo.Name;
                     ProcessDelDir(NewPath);
                    End;
             End
        Else Begin
              If (FInfo.Attr And FaVolumeID) <> FaVolumeID
               Then Begin
                     NewPath:=DName+'\'+FInfo.Name;
                     FileSetAttr(NewPath, FaArchive); {$I-} DeleteFile(NewPAth); {$I+} IoResult;
                    End;
             End;

       ErrCode:=FIndNext(FInfo);
      End;
  FindClose(FInfo);

  {$I-} RemoveDir(DName); {$I+}

  IoResult;
 End;

Begin
 StartDir:=Source;
 If Source[Length(Source)] = '\'
  Then SetLength(Source, Length(Source)-1);

 DirCount:=0;
 ProcessDelDir(Source);
End;


pozdrav
 
Odgovor na temu

Vdjuric
Vladimir Djuric
student
Beograd

Član broj: 20863
Poruke: 64
*.wireless.org.yu.

Sajt: www.marettasoftware.com


Profil

icon Re: Šetanje kroz fajlove u okviru foldera?28.09.2006. u 03:04 - pre 213 meseci
e da...iz imena fajla ces lako da proveris njegovu ekstenziju (funkcija extractFileExt).
Jos samo da te fajlove koje imaju trazenu ekstenziju potrpas u neki niz, listu ili gde god hoces i da kasnije vrsis obradu tog niza/liste...Mada mislim da ti je bolje da sve to obavis u prvom prolazu, ukoliko je izvodljivo.
poz
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Šetanje kroz fajlove u okviru foldera?

[ Pregleda: 2109 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.