Napisany mar-30-2009

directoryiterator

Być może nie wiecie, ale w PHP 5 istnieje świetna alternatywa dla funkcji opendir(),readdir() czy też scandir().Przedstawiam zatem obiektowy sposób poruszania się po katalogach systemu plików. Spójrzmy na przykład użycia:

try {
	$dir = new DirectoryIterator ('./przykladowy_katalog');

	// $file jest rowniez obiektem klasy DirectoryIterator
	foreach ($dir as $file)
		echo $file->GetFilename();
}
catch (RuntimeException $e) {
	echo $e->getMessage();
}

Pragnę zwrócić uwagę, iż w powyższym skrypcie przechwytujemy wyjątek RuntimeException, który zostanie zgłoszony np. jeśli katalog przekazany w konstruktorze klasy nie istnieje.

Pozostaje mi omówić kilka podstawowych metod, które dostarcza DirectoryIterator. Zatem:

  • bool isDir() - sprawdza czy bieżący element to katalog
  • bool isFile() - sprawdza czy bieżący element to plik
  • bool isDot() - sprawdza czy bieżący element to ‘.’ lub ‘..’
  • string getFilename() - zwraca nazwę bieżącego elementu (pliku lub katalogu)
  • int getSize() - zwraca rozmiar pliku
  • bool isReadable() - sprawdza czy plik można odczytać
  • bool isWritable() - sprawdza czy w pliku można zapisywać zmiany
  • bool isExecutable() - sprawdza czy plik można wykonać
  • string getType() - zwraca typ bieżącego elementu (dir,file) a nie MIME!

Prawda, że proste i przyjemne? Zainteresowanych odsyłam do oficjalnej dokumentacji, którą można znaleźć TUTAJ.

Tagi :

Komentarze:

Napisz komentarz