Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wielkosc katalogu, rozmiar katalogu.
Forum PHP.pl > Forum > PHP
Sokrates
Witam
Czy w php mozna jakos zliczac rozmiar katalogu lacznie z podkatalogami i plikami?
W swoim skrypcie uzylem, funkcji
  1. <?php
  2. echo filesize("sciezka_do_katalogu")."<br>";
  3. ?>

ale ta funkcja nie wazne jaki katalog bym wskazal zawsze pokazuje '4096' , a mi chodzi aby zliczala objetosc calego katalogu.
Przyczyna:
Chcem ograniczyc wielkosc katalogu do jakiejs tam liczby i chcialem zeby funkcja zliczac ile jest juz zajetego miejsca w podanym katalogu
W linuxie ten efekt osiagam, zmienna "du" z parametrami "-sh"

Wielkie dzieki za pomoc...
D3vilroot
http://pl.php.net/manual/pl/function.disk-total-space.php
TU napewno cos znajdziesz
Sokrates
No nie do konca , bo nie wiem, dlaczego ale to pokazuje mi pojemnasc calej partycji...
a ja chcem tylko jednego katalogu...
thornag
  1. <?php
  2. // $df zawiera całkowitą liczbę bajtów dostępną w "/"
  3. $df = disk_total_space("/");  ?>


Analogicznie, jesli zamiast '/' wpisze '/var/www/vhosts/thornag/Temp' to mi pokazuje rozmiar katalogu Temp ?

Uzywac manuala nie tylko rzucac okiem na pierwsze linijki tongue.gif
crash
Sokrates: moja propozycja (którą zapewne możnaby znaleźć wielokrotnie na forum, gdyby tylko skorzystać z wyszukiwarki):
  1. <?php
  2. function getDirectorySpace( $dirName )
  3. {
  4.  $totalSpace = 0;
  5.  $dirName = ( substr( $dirName, -1 ) != '/' ) ? $dirName . '/' : $dirName;
  6.  
  7.  if( $dh = opendir( $dirName ) )
  8.  {
  9. while( ( $file = readdir( $dh ) ) !== false )
  10. {
  11.  if( substr( $file, 0, 1 ) != '.' )
  12.  {
  13. if( is_dir( $dirName . $file ) )
  14. {
  15.  $totalSpace += getDirectorySpace( $dirName . $file );
  16. }
  17. else
  18. {
  19.  $totalSpace += filesize( $dirName . $file );
  20. }
  21.  }
  22. }
  23.  
  24. closedir( $dh );
  25.  }
  26.  
  27.  return $totalSpace;
  28. }
  29.  
  30. echo getDirectorySpace( '/dir/path/' );
  31. ?>


thornag:
Cytat(Manual::disk_total_space())
Podając łańcuch zawierający katalog, funkcja ta zwróci całkowity rozmiar (w bajtach) w odpowiadającym mu systemie plików lub partycji dysku.

Chyba naprawdę powinieneś zacząć czytać dobrze manual'a zanim zaczniesz się na niego powoływać!
Sokrates
Cytat(crash @ 26.10.2006, 18:08:51 ) *


A czy ta twoja funkcja uwzglednia prawa do katalogow, bo widze ze na katalogach gdzie
inni nie maja zadnych praw to nie dziala (nie ma dostepu do katalogu)
a na katalogach gdzie prawa dostepu do katalogow dla gr. inni jest na r-x , to dziala...

Jak to z tym jest?
Dzieki za odpowiedz...
thornag
@crash Rzeczywiscie masz racje, zostaje rekurencja i filesize. Zwracam honor, aczkolwiek co do Zipowania poczytaj ty dokladniej tongue.gifP
Sokrates
Oki, dzieki , za pomoc....
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.