Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Tiedostoja hakemistossa

Sivun loppuun

TETRIS [20.02.2004 15:22:40]

#

Olisi joku niin kiltti, että kertoisi miten PHP:llä saa laskettua hakemistossa olevien tiedostojen määrän ja niiden yhteiskoon (mielellään kilotavuina tai megoina) ja laitettua tulokset muuttujaan?

ajv [20.02.2004 15:41:38]

#

<?php
$yht = 0;
$dir = "hakemisto";
$a = opendir($dir);
while($tied = readdir($a)) {
	//ei lasketa hakemistoja tiedostoisksi
	if(is_file("$dir/$tied")) $yht++;
	}
closedir($a);
print "Hekemistossa \"$dir\" on yhteensä $yht tiedostoa";
?>

T.M. [20.02.2004 15:55:24]

#

PHP 4 versiossa:

<?php
$max = count(glob("hakemisto/*.*"));
print"$max tiedostoa";
?>

Jos laittaa pelkästään * niin se laskee myös hakemistot mukaan

TETRIS [20.02.2004 16:00:20]

#

Mitenkäs se tiedostojen koon laskeminen?

tsuriga [20.02.2004 16:21:53]

#

filesize(filename)

TETRIS [20.02.2004 21:40:59]

#

Kokeilin koon laskemista tollasella koodilla muttei toimi. Mikä mättää?

<?php
$dir = "./hakemisto/";
$a = opendir($dir);
$koko=filesize($dir);
print "Koko : $koko tavua";
closedir($dir);
?>

T.M. [20.02.2004 21:51:10]

#

<?php

foreach(glob("hakemisto/*.*") as $tiedosto){
	$yht += filesize($tiedosto);
}

print"Hakemiston tiedostojen yhteenlaskettu koko tavuina: $yht";

?>

ajv [20.02.2004 21:53:28]

#

Jos haluat hakemiston koon, niin tuolla kätsy funkkari siihen:
https://www.ohjelmointiputka.net/keskustelu/3068-tilaa-käytetty

edit: poistin tyhmän koodin

Tempfile [20.02.2004 21:56:13]

#

Oletko kokeillut stat():ia?

<?php
$tiedot = stat($dir);
$koko = $tiedot[7];
echo $koko;
?>

T.M. [20.02.2004 22:03:08]

#

...Mitäs iloa tosta on filesize() funktioon verrattuna?

TETRIS [20.02.2004 22:12:32]

#

Sain nyt toimimaan molemmat oikein hyvin. Nyt on vaan ongelmana vähän liian tarkka hakemiston koko eli olen jakanut 1024:llä hakemiston koon (että saan tulokseksi kilotavuja), mutta tulokseksi tulee 526.915039063 ja haluaisin sen 526:ksi. Mitenkäs tämä onnistuu?

T.M. [20.02.2004 22:16:58]

#

<?php
$tulos = 526.915039063;
$tulos = round($tulos, 0);
print $tulos;
?>

TETRIS [20.02.2004 22:27:56]

#

Suurkiitos kaikille auttaneille....


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta