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

时间:2018-06-11 16:37:40

标签: algorithm desktop-application

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

我知道如何处理编码,但我对避免命名冲突的策略感到困惑,特别是因为图像可能来自使用简单命名方案的相机文件,而来自不同相机会话的批量导入具有相同的名称。

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

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

enter image description here

1 个答案:

答案 0 :(得分:0)

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

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