Показать сообщение отдельно

Чистим хард
  #8  
Старый 17.02.2010, 02:38
Gar|k
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
Провел на форуме:
991929

Репутация: 395


По умолчанию Чистим хард

Я практически полностью забил свой винт на 250Гб. В папку downloads и заходить страшно - архивы папки... обычно я скачав архив разархивирую его в туже директорию в папку = имени архива. Разгрести все это руками не реально, поэтому я накидал скриптик, который шарится по винту ищет архивы и папки с их именами и удаляет все нафиг. Освободил ~9 Гб!!! места теперь думаю проверять время создания и последнего доступа к файлам - и удалить нафиг древний хлам

PHP код:
<?php
// Сканирования каталогов на наличие дублирования имен архивных файлов и папок
// под Win (легко передалть под *nix) by Gar|k
// удаляет папки = имя архива
@set_time_limit(0);
@
ini_set('max_execution_time',0);
define(FILE_TYPES,'zip|rar|gz|bz2');
function 
garik_rmdir($dir) {
    
$arr_dir=array();
    
$arr_file=array();
    if (
is_dir($dir)) { // если дира
        
if ($dh opendir($dir)) {
            while ((
$file readdir($dh)) !== false) {
                if(
$file=='.' || $file=='..') continue;
                if(
is_dir($dir $file))
                    
$arr_dir[]=$dir.$file;
                else
                if(
preg_match("/(.*?)\.(".FILE_TYPES.")$/i",$file,$matches)) $arr_file[]=$dir.$matches[1];
            }
            
closedir($dh);
        }
    }

    
$res=array_intersect($arr_dir,$arr_file);
    foreach(
$res as $v) {
        echo 
$v."\n";
        
system('rmdir /s /q "'.$v.'"'); // windows
    
}

}

// рекурсивная функция которая проходится по всем каталогам запуская там поиск
function recurse($dir) {
    if(
is_dir($dir)) {
        if (
$dh opendir($dir)) {
            while ((
$file readdir($dh)) !== false) {
                if(
$file=='.' || $file=='..') continue;
                if(
is_dir($dir $file)) {
                    
garik_rmdir($dir.$file.'\\');
                    
recurse($dir.$file.'\\');
                }

            }
            
closedir($dh);
        }
    }
}
recurse("g:\\"); //понеслась
?>
З.Ы: скрипт тупой ) но может кто-то разберет на его примере работу с рекурсивными функциями и директориями
 
Ответить с цитированием