wielkosc katalogu

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
themo
Posty: 5
Rejestracja: pt sty 10, 2003 2:56 pm
Lokalizacja: Piękny Kraków
Kontakt:

wielkosc katalogu

Post autor: themo »

jak moglebym sprawdzic wielkosc katalogu? (filesize???)
i jak mozna by bylo sprawdzic ile plikow (np. ile zip, exe itp) jest w danym katalogu (lub jesli katalog ma jeszcze w sobie inne podkatalogi) ??

pozdrawiam
Wojciech Jurewicz
Przelotem
Przelotem
Posty: 274
Rejestracja: wt lip 22, 2003 11:29 pm
Lokalizacja: Mazury
Kontakt:

Re: wielkosc katalogu

Post autor: Wojciech Jurewicz »

Aby zbadac rozmiar, zsumuj rozmiary plików w danym katalogu. Aby wybrać konkretne pliki, również pobierz wszystkie, a następnie zprzy pomocy wyrażeń regularnych sprawdź czy o takie rozszeżenie ci chodzi. Aby pobrac pliki z danego katalogu i podkatalogów wykożystaj:

[php]<?php
function tree( $dirPath ) {
$dirDP = opendir( $dirPath );
while( $element = readdir( $dirDP ) ) {
if ($element!='.' and $element!='..') {
if ( is_file( $dirPath . "/" . $element ) ) {
$pliki[] = ( $dirPath . "/" . $element );
} else {
tree( $dirPath . "/" . $element );
}
}
}
closedir($dirDP);
rmdir( $dirPath );
}
?>[/php]
Łukasz Świerżewski
Nowy
Nowy
Posty: 82
Rejestracja: wt paź 22, 2002 4:15 pm
Lokalizacja: Warszawa
Kontakt:

Re: wielkosc katalogu

Post autor: Łukasz Świerżewski »

Jeśli nie bardzo rozumiesz podanego przez Wojtka kodu to przeczytaj odpowiedni artykuł dotyczący operacji na katalogach w dziale PHP na WI, a napewno dowiesz się wszytskich niepewności. Jeśli nadal będziesz miał jakieś wątpliwości to też pisz na forum.
themo
Posty: 5
Rejestracja: pt sty 10, 2003 2:56 pm
Lokalizacja: Piękny Kraków
Kontakt:

Re: wielkosc katalogu

Post autor: themo »

chyba dalej troszku tego nie rozumie :(
jak mam je zsumowac i jaka komenda zliczy mi ich wielkosc.
sorki ale po zawodowce jestem :lol: :twisted:
Łukasz Świerżewski
Nowy
Nowy
Posty: 82
Rejestracja: wt paź 22, 2002 4:15 pm
Lokalizacja: Warszawa
Kontakt:

Re: wielkosc katalogu

Post autor: Łukasz Świerżewski »

Udoskonale nieco funkcję podaną przez Wojtka tak, aby zwracała ona tablice która zawiera wszystkie nazwy plików, a nastepnie osobnym kodem zliczymy wilkosc kazdego pliku:
[php]<?php
function tree( $dirPath ) {
$dirDP = opendir( $dirPath );
while( $element = readdir( $dirDP ) ) {
if ($element!='.' and $element!='..') {
if ( is_file( $dirPath . "/" . $element ) ) {
$pliki[] = ( $dirPath . "/" . $element );
} else {
tree( $dirPath . "/" . $element );
}
}
}
closedir($dirDP);
rmdir( $dirPath );
return $pliki;
}
?>[/php]
Teraz zapomocą krótkiego kodu zliczymy wilkość całego katalogu sumując wielkośc wsyztskich plików:
[php]<?php
$pliki = tree('katalog');
$wlk = 0;
$ile_zip = 0;
for ($i=0; $i < count ($pliki); $i++) {
$wlk += filesize($pliki[$i]);
if (eregi("^.\.zip$", $pliki[$i])) $ile_zip++;
}
print "Wielkość katalogu wynosi <b>$wlk</b><br>\n
W katalogu znajduje się <b>$ile_zip</b> plików ZIP\n";
?>[/php]
Przy okazji pokazałem Ci na jakiej zasadzie można sprawdzić liczbę plików ZIP wykorzystując wzorce wyrażeń regularnych. Mam nadzieje, że teraz wszstko już wiesz. Jeśli nie to pisz dalej co Cię jeszcze interesuje.
ODPOWIEDZ