Переименование файлов по шаблону

vovchik542

Новичок
Переименование файлов по шаблону

Всем привет. Мне нужно было переименовать кучу файлов в папке и во всех вложенных в нее. Вот написал код, может кому пригодится;)

PHP:
function RenameFiles($dirname, $mask, $ext, $prnt, $level=1)
{
	$d=@opendir($dirname);
    if (!$d) return;
    $counter = 0;
    while (($e=readdir($d)) !== false) {
    	if ($e=='.' || $e=='..') continue;
        $curr_way = $dirname."/".$e;
        if (is_file($curr_way)) {
            $curr_ext = substr($e, strlen($e)- strlen($ext), strlen($ext));
        	if($curr_ext === $ext) {
            	$file_old_full_name = $curr_way;
	            $prefix = "";
                $counter++;
	            if (($counter / 10) < 1) $prefix = "00";
	            if (($counter / 10) >= 1) $prefix = "0";
	            if (($counter / 100) >= 1) $prefix = "";

	            $file_new_full_name = $dirname."/$mask - $prefix$counter";
	            rename($file_old_full_name, "$file_new_full_name.$ext");
	            if ($prnt == 1) {
	                for ($i=0; $i<$level; $i++) echo " ";
	                echo "$e renamed to $mask - $prefix$counter.$ext\n";
	            }
	            continue;
            }
        }
        if ($prnt == 1) echo "\n";
        if (is_dir($curr_way)) {
            if ($prnt == 1) for ($i=0; $i<$level; $i++) echo " ";
    		if ($prnt == 1) echo "Subfolder \"$e\":"."\n";
        	if (!@chdir($curr_way)) continue;
        	RenameFiles($curr_way, $mask, $ext, $prnt, $level+1);
        	chdir("..");
        }
    }
    closedir($d);
}

$printresults = 1;
$dirname = "c:\\test";
$mask = "your_mask";
$ext = "your_extension";

echo "<pre>";
if ($printresults == 1) echo $dirname."\n";
RenameFiles($dirname, rand(), $ext, 0);//для исключения совпадения имен
RenameFiles($dirname, $mask, $ext, $printresults);
echo "</pre>";
Переименовывает только те файлы, у которых расширение $ext

-~{}~ 07.01.05 19:56:

Неужели такой бесполезный скрипт?:(

Мне нужно было переименовать пару тысяч рисунков по шаблону Image - xxx.jpg. Все были с какими-то уродскими названиями. Теперь в папке Images и всех вложенных все красиво, аж глаз радует:):)
 
Сверху