Autor Zpráva
pli
Profil *
Prosím Vás o radu,

jak mohu zjistit prázdný adresář?
A v případě, že je prázdný, vykonat nějakou akci, hlášku, apod....

tohle mi nefunguje dobre:

if ($handle=opendir('./data/tentoadresarzkontroluj)) {
while ($file = readdir($handle))
$polozky[count($polozky)] = $file;
if (!$polozky[count($polozky)] <> 0)
echo "je prazdny";
closedir($handle);
sort($polozky);
}



děkuji
Měsíček
Profil
Mrkni na příklady dole http://cz.php.net/is_dir
pli
Profil *
Měsíčku, děkuji.
Měsíček
Profil
Tohleto je IMHO docela pěkné řešení:
<?php
  function is_dir_empty ($dir_name) {
    return (($files = @scandir($dir_name)) && count($files) <=2) ? "Ano" : "Ne";
  }
  echo "Je složka prázdná? :".is_dir_empty("dir");
?> 


Použití funkce is_dir_empty(); je jednoduché jako argument vložíš název složky .. jestliže je prázdná vrátí "Ano" jestliže v ní něco je vrátí "Ne".
Měsíček
Profil
Jo a ještě jsem zapomněl:
  if (is_dir_empty("dir") == "Ano") {
    // Něco vykonej ..
  }
to k tvé druhé části kdyby jsi chtěl něco vykonat když je prázdnej ..
pli
Profil *
Měsíčku, nějak mi to nefunguje, výraz echo count($files); pořád vypisuje 0......
zkouším taky tady : count($files) <=1 dávat různé čísla, aby se výpis echo "je v nem neco"; ukázal, když je v adresáři jeden a méně souborů...a nejde to, prosím o pomoc

<?php
$dir_name = "./$adrjedna/data/$adr2/";

function is_dir_empty ($dir_name) {
return (($files = @scandir($dir_name)) && count($files) <=1) ? "Ano" : "Ne";
}
echo "Je složka prázdná? :".is_dir_empty("dir");
echo count($files);
if (is_dir_empty("dir") == "Ano") {
echo "Prázdný adresář";
}
?>
BetaCam
Profil
Měsíček
jestliže je prázdná vrátí "Ano" jestliže v ní něco je vrátí "Ne".

Tak to mi nepřijde zrovna ideální. Jako návratové hodnoty z takovíchto funkcí by se měly používat boolean hodnoty.

  if (is_dir_empty("dir") == "Ano")


Úplně to vidim jak by tu podmínku dříve nebo později postavil takto :

if(is_dir_empty("dir"))


A pak by se divil proč mu to uplně u všecho hlásí, že ten adresář je prázdný.
pli

Přenastav návratové hodnoty třeba takto :

  function is_dir_empty($dir_name) {
  	if (is_dir($dir_name)) {
  		return (($files = scandir($dir_name)) && count($files) <=2) ? TRUE : FALSE;
  	}else{
  		return NULL;
  	}
  }


echo count($files);


Je blbost. Si mimo obor platnosti.
Měsíček
Profil
"Měsíčku, nějak mi to nefunguje, výraz echo count($files); pořád vypisuje 0......
zkouším taky tady : count($files) <=1 dávat různé čísla, aby se výpis echo "je v nem neco"; ukázal, když je v adresáři jeden a méně souborů...a nejde to, prosím o pomoc "


Tu dvojku tam nechej .. je tam pro "." a ".."

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: