KARTz.RU
кушаешь морковь – встанет вновь и вновь

Велосипед для группового переименования

Декабрь 07th, 2011

Недавно тоже пришлось переименовывать много картинок, но с некоторыми особенностями:
– неприятие графического интерфейса там, где он не нужен;
– нежелание разбираться в рготовых решениях там, где можно за пару минут написать своё;
– страстная любовь к велосипедам;
– желание организовать неразрушающее переименование, то есть с сохранением результата.

Под рукой был Пых. Скрипт ниже берёт все файлы из определённой директории с определённым расширением (чувствительно к регистру), и создаёт для них жёсткие ссылки в поддиректории. Если результат работы устраивает – то результат можно переместить или скопировать куда надо, а исходные файлы удалить. А можно не удалять.

Количество цифр нумерации определяется автоматически, при необходимости вставляется необходимое число лидирующих нулей. Также в тексте даны комментарии по возможной модификации. Процесс работы сопровождается пояснениями происходящего. В исходном виде под виндой работать не будет. Распространяется на условиях CC-BY-NC.


< ?php
$path = '/home/dober/pics'; // original path
$ext = 'png'; // attention: extention case sensetime
$newdir = 'renamed'; // subdirectory for renamed files
$prefix = 'screen-'; // prefix for numbers
$i = 1; // start number

if(file_exists($path.'/'.$newdir))
{ die("Error: directory <$newdir> alredy exists. Revome it or specify ahother newdir.\n"); }
mkdir($path.'/'.$newdir, 0777);

$ls=glob($path.'/*.'.$ext);
sort($ls);
$n=strlen(''.count($ls));

foreach ($ls as $v)
{
$newname = $path.'/'.$newdir.'/'.$prefix.str_repeat('0',$n-strlen(''.$i)).$i.'.'.$ext;
echo($v."\n => ".$newname."\n");
link($v, $newname); // you can replace link() with copy() or rename() or symlink()
$i++;
}
?>


Filed under: Без рубрики | Метки: , ,
Декабрь 07th, 2011 19:08:08

Похожие посты:
no comments
Leave a Reply