Poniższa funkcja umożliwia rekursywne kasowanie plików i katalogów, można zdefiniować jakiego rodzaju (typu) pliki mają zostać usunięte.

<?php 
function DeleteFilesRecursively($path,$match){
static $deleted = 0, 
$dsize = 0;
$dirs = glob($path."*");
$files = glob($path.$match);
foreach($files as $file){
if(is_file($file)){
$deleted_size += filesize($file);
unlink($file);
$deleted++;
}}
foreach($dirs as $dir){
if(is_dir($dir)){
$dir = basename($dir) . "/";
DeleteFilesRecursively($path.$dir,$match);
}}
echo "<strong>INFO</strong>: ".$deleted.": files deleted with a total size of ".$deleted_size." bytes.<br>";
}
function DeleteDirectoriesRecursively($dirname) { 
if(is_dir($dirname))$dir_handle=opendir($dirname); 
while($file=readdir($dir_handle)){ 
if($file!="." && $file!="..") { 
if(!is_dir($dirname."/".$file)){
unlink ($dirname."/".$file); 
} else {
DeleteDirectoriesRecursively($dirname."/".$file); 
}}} 
closedir($dir_handle); 
rmdir($dirname); 
echo "<strong>INFO</strong>: ".$dirname.": directory deleted.<br>";
return true;
}
?>

Przykład, jeśli chcemy usunąć wszystkie pliki z rozszerzeniem ini oraz db, znajdujące się w katalogu /sciezka-do-katalogu/pliki/

<?php
DeleteFilesRecursively('/sciezka-do-katalogu/pliki/', '*.ini');
DeleteFilesRecursively('/sciezka-do-katalogu/pliki/', '*.db');
?>

Przykład jeśli chcemy usunąć całą zawartość katalogu wraz z plikami oraz sam katalog pliki (ścieżka: /sciezka-do-katalogu/pliki)

<?php
DeleteDirectoriesRecursively('/sciezka-do-katalogu/pliki);
?>

Facebook Comments

Zostaw komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

ZOBACZ RÓWNIEŻ

FACEBOOK GET TOTAL LIKES FAN COUNTER SCRIPT PHP OPEN GRAPH

Register your Developer Account at Facebook Developer: https://developers.facebook.com/. From