Переименовать и перенумеровать файлы в пакетном режиме - PullRequest
1 голос
/ 12 октября 2011

(PHP> = 5) * поддельное оправдание: я не программист, я только учусь ...

Я прочитал несколько файлов в моем собственном каталоге '/ img':

  • 0.jpg
  • 1.jpg
  • 2.jpg
  • .... JPG
  • 10.jpg

Итак, я получил массив ();

Мне нужно переименовать каждый элемент в массиве в соответствии с его идентификатором, известным jQuery (все атрибуты файла задаются в ячейках таблицы HTML, каждый из которых имеет идентификаторы и классы по мере необходимости). Но самое неприятное, что я не могу избежать перезаписи файлов.

например. Я переименовываю одновременно 1.jpg и 3.jpg (Используя jQuery, я переназначил идентификаторы (и новые имена файлов, созданные и переданные в форму): 1-й файл получил ID = 3, 3-й файл получил ID = 1 )

  • 1.jpg -> 3.jpg
  • ...
  • И
  • ...
  • 3.jpg -> 1.jpg

Вы увидите, где находится ловушка.

Итак, вопрос в следующем: Должен ли я создать каталог '/ temp', чтобы избежать перезаписей и записи в него, чтобы потом переименовать их () или mv ()? Или есть гораздо более прозрачные и быстрые способы сделать то же самое?

Ответы [ 2 ]

1 голос
/ 12 октября 2011

Есть несколько способов сделать это:

  • Переместить 3.jpg в temp-dir
  • Переименовать 1.jpg в 3.jpg
  • Переименовать3.jpg в 1.jpg
  • Переместить temp / 1.jpg обратно в папку

  • Переименовать 3.jpg в 3.jpg ~
  • Переименование 1.jpg в 3.jpg
  • Переименование 3.jpg ~ в 1.jpg

  • Загрузка 3.jpg в память
  • Переименуйте 1.jpg в 3.jpg
  • Создайте файл 1.jpg с содержимым старого 3.jpg (сохраненного в вашей памяти)

Возможно, естьбольше способов, но я думаю, что это лучшие.Надеюсь, что это полезно:)

-Edit- Я думаю, что последний самый быстрый, но он потребляет больше всего памяти.Если вам это не нравится, я бы использовал второй.Но это ваш выбор:)

0 голосов
/ 03 января 2014

Этот пакет может переименовывать файлы в каталоге, используя несколько стратегий. Он может рекурсивно просматривать каталог и переименовывать файлы в соответствии с несколькими различными типами стратегий. Каждая стратегия определяет, как каждый файл должен быть переименован или нет.

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

Переименованные файлы могут быть скопированы в отдельный каталог. Класс также может генерировать отчет в формате CSV о переименованных файлах.

...