RemoveDir – Klasör Sil (Php Class)

Bazen gerek görmediğimiz dizinleri silmek isteriz ama bunu yaparken birçok sorunla karşılaşabiliyoruz . İşte bu sorunlara kökten çözüm getirerek istediğini bir klasörü alt klasörleri ve tüm içeriğiyle birlikte silmenize yarayan bir class paylaşmak istiyorum bugün. Class ' ımızı istediğimiz sayfaya include (içeri çağırdığımızda) ettikten sonra şu şekilde istediğimiz klasörü kökünden yok edebiliriz.

dirremove.php :

PHP:
  1. <?php
  2. include("removeclass.inc.php"); // class dosyamızı içeriğe çağırdık .
  3. $obj=new removeDir();
  4. $obj->deleteDir("../silenecek_klasor/"); // silinecek Klasörün adresi.
  5. ?>


Asıl ana dosyamız olan removeclass.inc.php :

PHP:
  1. <?php
  2.  
  3.  
  4. class removeDir{
  5.     private $dirmn;
  6.     function removeDir(){} // Constructor
  7.     function isEmpty($path) // Boş mu değilmi kontrolü .
  8.     {
  9.         $handle=opendir($path);
  10.         $i=0;
  11.         while (false !== ($file = readdir($handle)))
  12.             $i++;
  13.         closedir($handle);
  14.         if($i>=2)   
  15.             return false;
  16.         else
  17.             return true;
  18.     }
  19.     function deleteDir($dirnm) // Dizin - alt dizin ve dosyaları sil .
  20.     {
  21.         $d=dir($dirnm);
  22.         while(false !== ($entry = $d->read()))
  23.         {
  24.             if($entry=="." || $entry=="..")
  25.                 continue;
  26.             $currele=$d->path."/".$entry;
  27.             if(is_dir($currele))
  28.             {
  29.                 if($this->isEmpty($currele))
  30.                 {
  31.                     @rmdir($currele);
  32.                 }
  33.                 else
  34.                 {
  35.                     $this->deleteDir($currele);
  36.                 }
  37.             }
  38.             else
  39.             {
  40.                 @unlink($currele);
  41.             }
  42.         }
  43.         $d->close();
  44.         rmdir($dirnm);
  45.         return true;
  46.     }
  47.  
  48. }
  49. ?>

Umarım işinize yarar ;)

16 views

Leave a Reply

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word