Стратегия предотвращения конфликтов имен при копировании выбранных пользователем файлов? - PullRequest
0 голосов
/ 11 июня 2018

Я разрабатываю настольное приложение в «Электроне», которое позволяет «непрофессиональному» пользователю импортировать (копировать) изображения со своего локального диска в каталог проекта, который он создал ранее.Через диалоговое окно платформы (OSX или Windows) пользователь может выбрать одно или несколько изображений, или один или несколько каталогов, которые также могут включать подкаталоги.

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

Для простого примера пользователь можетвыберите обе директории «DCIM» ниже или выберите из каждой директории файлов с одинаковым именем.

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

enter image description here

1 Ответ

0 голосов
/ 11 июня 2018

Решение, которое я видел, состоит в том, чтобы найти конфликт имен, а затем добавить что-то к названию импортируемой вещи перед окончанием.Таким образом, вы увидите файлы с именами foo.txt, foo-001.txt, foo-002.txt и т. Д.

Если вы ожидаете очень много конфликтов, добавляемый текст должен быть случайным, а не последовательным.Это связано с тем, что для расчета foo-050.txt требуется 51 повторный чек, но только 2.0000214334705 ... до расчета foo-kyc.txt.Разница в производительности может быть довольно заметной после многих конфликтов для многих файлов.

...