Algorithm 复制用户选择的文件时避免名称冲突的策略?

Algorithm 复制用户选择的文件时避免名称冲突的策略?,algorithm,desktop-application,Algorithm,Desktop Application,我正在“Electron”中开发一个桌面应用程序,允许“非专业”用户将图像从本地驱动器导入(复制)到他们之前创建的项目目录中。通过平台对话框(OSX或Windows),用户可以选择单个或多个图像,或单个或多个目录,其中还可以包括子目录 我知道如何处理编码,但我被一种避免命名冲突的策略难住了,特别是因为图像可能来自使用简单命名方案的摄影机文件,从具有相同名称的不同摄影机会话批量导入 举个简单的例子,用户可以选择下面的两个“DCIM”目录,或者从同名文件的每个目录中进行选择 这可能是一个非常常见的编

我正在“Electron”中开发一个桌面应用程序,允许“非专业”用户将图像从本地驱动器导入(复制)到他们之前创建的项目目录中。通过平台对话框(OSX或Windows),用户可以选择单个或多个图像,或单个或多个目录,其中还可以包括子目录

我知道如何处理编码,但我被一种避免命名冲突的策略难住了,特别是因为图像可能来自使用简单命名方案的摄影机文件,从具有相同名称的不同摄影机会话批量导入

举个简单的例子,用户可以选择下面的两个“DCIM”目录,或者从同名文件的每个目录中进行选择

这可能是一个非常常见的编程问题,必须有一些比我聪明的人想出的解决方案——但我不知道这个问题叫什么,以便搜索它们


我看到的解决方案是查找命名冲突,然后在结束之前将某些内容附加到要导入的对象的名称中。因此,您将看到名为
foo.txt
foo-001.txt
foo-002.txt
,等等的文件


如果您预计会有很多冲突,那么附加的文本应该是随机的,而不是顺序的。这是因为它在使用
foo-050.txt
之前需要51次重复检查,但只有2.000021434705次。。。在选择
foo-kyc.txt
之前。在许多文件发生多次冲突后,性能差异可能非常明显。

导入图像后,用户是否关心名称?你真的需要复制(图像很大),还是文件可以保存在原来的位置?@user3386109-我需要复制,因为他们创建的“项目”可能会被移动到不同的机器上,等等。我想知道将原始文件名更改为我控制的命名方案是否是一个好的解决方案。