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

Kako izbrojiti fajlove u nekom folderu???

[es] :: PHP :: Kako izbrojiti fajlove u nekom folderu???

[ Pregleda: 2638 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

LaMpiR
Srđan Vuković
Vienna

Član broj: 9930
Poruke: 1343



+2 Profil

icon Kako izbrojiti fajlove u nekom folderu???04.03.2004. u 17:48 - pre 217 meseci
DA li je moguce da skripta prebroji fajlove u folderu na hostu npr ako je folder scripts da prebroji koliko skripti ima u tom folderu i da ispise npr Script in Archive: 57 itd...?
 
Odgovor na temu

NikolaVeber
NikolaVeber
neradnik na porodiljskom bolovanju
Karlsruhe

Član broj: 5115
Poruke: 1254
*.rz.uni-karlsruhe.de

Jabber: nikolaveber@jabber.org
ICQ: 121532865


Profil

icon Re: Kako izbrojiti fajlove u nekom folderu???04.03.2004. u 18:07 - pre 217 meseci
Code:

$directory = opendir("./");
  while( $file = readdir( $directory ) ){
  $file_array[] = $file;
}
echo "Broj fajlova u direktorijumu: ".count($file_array);


To bi trebalo da radi. Ne znam da li ima neka bolja metoda za isto.
Pop Servis "Paradise Tours"
Java User Group Karlsruhe
IT Dan - Srbija

Officer, I saw the driver who hit me - his name was Johnny Walker.
 
Odgovor na temu

_owl_

Član broj: 318
Poruke: 1043
*.vdial.verat.net



+3 Profil

icon Re: Kako izbrojiti fajlove u nekom folderu???04.03.2004. u 20:30 - pre 217 meseci
U kodu koji si dao postoji vise greska koje uzrokuju
prijavljivanje pogresnog broja fajlova u direktorijumu.
Ne bi bilo lose da se pogleda www.php.net/readdir
Ukratko readdir vraca sve fajlove i direktorijume koji se
nalaze u trazenom direktorijumu ukljucujuci . i ..
Testiranje povratne vrednosti readdir bi trebao da vrsis
na sledeci nacin (kao sto je napisano u primeru za ovu
funkciju)
Code:

   $handle = opendir('/path/to/files');
   /* This is the correct way to loop over the directory. */
   while (false !== ($file = readdir($handle))) { 
       echo "$file\n";
   }

   /* This is the WRONG way to loop over the directory. */
   while ($file = readdir($handle)) { 
       echo "$file\n";
   }


Owl
 
Odgovor na temu

NikolaVeber
NikolaVeber
neradnik na porodiljskom bolovanju
Karlsruhe

Član broj: 5115
Poruke: 1254
*.rz.uni-karlsruhe.de

Jabber: nikolaveber@jabber.org
ICQ: 121532865


Profil

icon Re: Kako izbrojiti fajlove u nekom folderu???04.03.2004. u 21:00 - pre 217 meseci
Ok, pardon. Ja sam to koristio samo sa proverom ekstenzije, tako da sam dobijao dobre rezultate...
Pop Servis "Paradise Tours"
Java User Group Karlsruhe
IT Dan - Srbija

Officer, I saw the driver who hit me - his name was Johnny Walker.
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
194.247.222.*

Sajt: www.novikorisnik.net


+5 Profil

icon Re: Kako izbrojiti fajlove u nekom folderu???05.03.2004. u 07:23 - pre 217 meseci
Code:
$dirname = 'scripts/';
$numoffiles = 0;
$dir = opendir ($dirname);
while ($item = readdir ($dir))
  if (filetype ("$dirname$item") == 'file')
   $numoffiles++;
closedir ($dir);
echo "Script in Archive: $numoffiles";



@_owl_
Nije mi jasno zbog čega ta napomena u citiranom kodu o ispravnom načinu zadavanja petlje za čitanje stavki iz direktorijuma - u smislu - ne vidim primer gde bi drugi (WRONG) način dao bilo šta neispravno.

Ovakvu konstrukciju video sam i na drugim mestima u Manualu, ali ne i dosledno - recimo stoji

while ($row = mysql_fetch_assoc ($result)) {...

umesto

while (false !== ($row = mysql_fetch_assoc ($result))) {...
 
Odgovor na temu

Dejan Krstic

Član broj: 479
Poruke: 2558



+1 Profil

icon Re: Kako izbrojiti fajlove u nekom folderu???05.03.2004. u 10:18 - pre 217 meseci
Svi ste vi rekli sta treba a sta ne treba a niko coveku da da ispravan source :)

Code:

$brojac = 0;
$bytes = 0;
$dh = opendir($root_dir."/".$dir);
while (($file = readdir($dh)) != false)
{
    if (($file == ".") or ($file == "..")) continue;
    $brojac++;
    $bytes += filesize($root_dir."/".$dir."/".$file);
}
echo "Ukupno fajlova: ".$brojac."<br>";
echo "Ukupno kb: ".round($bajtova / 1024, 1);


 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
194.247.222.*

Sajt: www.novikorisnik.net


+5 Profil

icon Re: Kako izbrojiti fajlove u nekom folderu???05.03.2004. u 10:32 - pre 217 meseci
Dejane, ako postoji neki poddirektorijum, $brojac ima malo da laže, zar ne?

Drugo - šta je neispravno u source-u koji sam objavio?
 
Odgovor na temu

afwt
AF Web Team
Novi Sad/Chicago

Član broj: 8220
Poruke: 337
*.1.EUnet.yu

Sajt: milos.srdjevic.net/blog


+1 Profil

icon Re: Kako izbrojiti fajlove u nekom folderu???05.03.2004. u 11:21 - pre 217 meseci
Napravio sam par rekurzivnih funkcija koje broje velicine fajlova (extenzije su parametar funkcije), broj linija koda, kao i broj fajlova. Ako ti treba, javi na PM.
ZelenaLutrija.com - Saznajte sve o lutriji za zelenu kartu (doživotni boravak u Sjedinjenim Američkim Državama)
 
Odgovor na temu

Dejan Krstic

Član broj: 479
Poruke: 2558



+1 Profil

icon Re: Kako izbrojiti fajlove u nekom folderu???05.03.2004. u 14:24 - pre 217 meseci
Citat:
noviKorisnik:
Dejane, ako postoji neki poddirektorijum, $brojac ima malo da laže, zar ne?


Da, tacno. Uradjen je copy/paste iz jedne moje skripte i samo sam par sitnica promenio/dodao a kod mene se podrazumeva da nema direktorijuma tako da to ni ne proveravam.

Citat:
Drugo - šta je neispravno u source-u koji sam objavio?


Code:

while ($item = readdir ($dir))


Nisam siguran kako ce petlja da se ponasa. A i u php manualu, cini mi se, kaze da ne treba tako da se ide kroz direktorijum (ili mozda cak i da ne moze tako, nisam siguran).
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
194.247.222.*

Sajt: www.novikorisnik.net


+5 Profil

icon Re: Kako izbrojiti fajlove u nekom folderu???05.03.2004. u 14:51 - pre 217 meseci
readdir vraća string - ime stavke iz direktorijuma. Postoji mogućnost da petlja pukne ranije ukoliko je ime neke stavke prazan string, mada trenutno ne mogu da smislim da neki fajl ili poddirektorijum ima prazno ime...

Zato mi i nije jasan komentar u Manualu o definiciji ispravnog i neispravnog uslova petlje.

...

Najsmešnije mi je što u istom parčetu koda u Manualu stoji i sledeće
Code:
// Note that !== did not exist until 4.0.0-RC2
?
 
Odgovor na temu

_owl_

Član broj: 318
Poruke: 1043
*.verat.net



+3 Profil

icon Re: Kako izbrojiti fajlove u nekom folderu???05.03.2004. u 23:40 - pre 217 meseci
Pa ne moze da vrati prazan string ali moze da vrati "0" (kao string) ali posto operator == ne vodi racuna o tipu taj string se prebacuje u integer a onda se
ceo izraz sracunava u FALSE i petlja se prekida. U slucaju da se kontrolise koji
se fajlovi nalaze u direktorijumu iz koga se cita kod koji ne koristi === (ili !==)
bi najverovatnije radio bez problema.
Ceo problem postoji posto PHP ne vodi racuna o tipa pa funkcije mogu da vracaju
podatke razlicitih tipova, u ovom slucaju stringove i FALSE (boolean).

Owl
 
Odgovor na temu

noviKorisnik
Dejan Katašić
Novi Sad

Član broj: 13216
Poruke: 4533
*.dialup.neobee.net.

Sajt: www.novikorisnik.net


+5 Profil

icon Re: Kako izbrojiti fajlove u nekom folderu???06.03.2004. u 18:54 - pre 217 meseci
Bravo Majstore!
'0' == 0 == false i puca...
Treba voditi računa o takvim detaljima, nejednom mi se desilo da dobijam pogrešan output zbog slične stvari i umesto da krenem sa striktnom proverom... - evo krećem odsad pa nadalje:
Code:
$dirname = 'scripts/';
$numoffiles = 0;
$dir = opendir ($dirname);
while (false !== ($item = readdir ($dir)))
  if (filetype ("$dirname$item") == 'file')
   $numoffiles++;
closedir ($dir);
echo "Script in Archive: $numoffiles";

 
Odgovor na temu

[es] :: PHP :: Kako izbrojiti fajlove u nekom folderu???

[ Pregleda: 2638 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

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