Bir Klasörün İçindeki Tüm Dosya ve Klasörleri Görüntülemek

PHP
62 lines
<?php
class DerinDizin{
var $dizin;
var $dosyalar;
function DerinDizin(){
$this->dizin = '';
$this->dosyalar = array();
$this->dizinelemanlar = new elemanlar();
}
function dizinAyarla( $dizin ){
$this->dizin = $dizin;
$this->dosyalar = array();
$this->dizinelemanlar->sifir();
$this->dizinelemanlar->push( $this->dizin );
}
function yukle(){
while( $this->mevcutDizin = $this->dizinelemanlar->pop() ){
$this->mevcutDizindenYukle();
}
}
function mevcutDizindenYukle(){
if ( $kol = @opendir( $this->mevcutDizin ) ){
while ( false !== ( $dosya = readdir( $kol ) ) ){
if ( $dosya == "." || $dosya == ".." ) continue;
$dosyaYolu = $this->mevcutDizin . '/' . $dosya;
$dosyatipi = filetype( $dosyaYolu );
if ( $dosyatipi == 'dir' ){
$this->dizinelemanlar->push($dosyaYolu);
continue;
}
$this->dosyalar[]=$dosyaYolu;
}
closedir($kol);
}
else{
echo 'Hata : Dizin Açılamıyor "'.$this->mevcutDizin.'"';
}
}
}
class elemanlar{
var $elemanlar;
function elemanlar(){
$this->sifir();
}
function push( $eleman ){
array_push( $this->elemanlar, $eleman );
}
function pop(){
return array_pop( $this->elemanlar );
}
function sifir(){
$this->elemanlar = array();
}
}
$dizinAdi = '..';
$dizin = new DerinDizin();
$dizin->dizinAyarla($dizinAdi);
$dizin->yukle();
foreach( $dizin->dosyalar as $n => $kolYolu ){
echo ($n+1)." ".$kolYolu."<br>";
}
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Çıktısı

JavaScript
7 lines
1 ../localweb/index.php
2 ../localweb/test/2.txt
3 ../localweb/test/a/b.php
4 ../databases/tr.txt
5 ../conf/asd.txt
6 ../conf/test.conf
7 ../conf/test2.conf
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX