vovchik542
Новичок
Переименование файлов по шаблону
Всем привет. Мне нужно было переименовать кучу файлов в папке и во всех вложенных в нее. Вот написал код, может кому пригодится
Переименовывает только те файлы, у которых расширение $ext
-~{}~ 07.01.05 19:56:
Неужели такой бесполезный скрипт?
Мне нужно было переименовать пару тысяч рисунков по шаблону Image - xxx.jpg. Все были с какими-то уродскими названиями. Теперь в папке Images и всех вложенных все красиво, аж глаз радует

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

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>";
-~{}~ 07.01.05 19:56:
Неужели такой бесполезный скрипт?

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

