Delphi. Алгоритмы. Как заменить имя файла на уникальное ?

Скажем, у нас есть имя файла в формате Filename.jpg в переменной FileName. Далее код на уровне идеи…

Вариант 1 через GUID

Вот пример такого изменения. Сохраняем часть старого имени для читабельности и добавляем GUID

Вариант 2 через Random

Отделим имя от расширения, в предпоследнем элементе массива заменим имя на уникальное через Random

Алгоритм хорош, но есть вероятность совпадения имен. Как выход, можно гонять этот метод рекурсивно до исчезновения совпадений. Файлы будут вида

Мне этот алгоритм нравится, но не до конца… Он работает быстро, но сам вид файла, не эстетичен))

Вариант 3 через циклы while / repeat

В данном случае, через цикл while, но можно переписать и через repeat, алгоритм работает медленнее (O(n2)), чем предыдущий, но имена файлов получаются более красивыми

Пример из проекта… Есть список имен, с которым мы сравниваем

Далее функция. Есть ли такой файл в списке? В данном случае на сервере?

Далее функция создания уникального имени

И последнее – проверка и создание уникального имени в случае необходимости

 

 

 

 

This entry was posted in Delphi, Алгоритмы. Bookmark the permalink.