node.js以增量方式重命名文件

node.js以增量方式重命名文件,node.js,filesystems,Node.js,Filesystems,我一直在使用Node.JS文件系统模块执行各种与文件相关的操作。我需要验证文件名是否存在于目录中,如果存在,我需要在文件末尾保留后缀。通常windows如何处理重复的文件名 如果TestFile.txt已经存在,并且在处理过程中出现了另一个同名文件,则新文件应重命名为TestFile(1).txt,下一个同名文件应重命名为TestFile(2).txt 实现这一目标的最佳方式是什么。我是否必须使用临时数组来保留所有文件名并遍历每个文件名?这是一个多线程环境,可能有50000多个文档需要处理 非常

我一直在使用Node.JS文件系统模块执行各种与文件相关的操作。我需要验证文件名是否存在于目录中,如果存在,我需要在文件末尾保留后缀。通常windows如何处理重复的文件名

如果TestFile.txt已经存在,并且在处理过程中出现了另一个同名文件,则新文件应重命名为TestFile(1).txt,下一个同名文件应重命名为TestFile(2).txt

实现这一目标的最佳方式是什么。我是否必须使用临时数组来保留所有文件名并遍历每个文件名?这是一个多线程环境,可能有50000多个文档需要处理


非常感谢。

任何语言的直接解决方案都是检查直接文件是否存在,如果是,请检查下一个变体(文件(1).txt)。当然,如果您需要重命名许多文件,名称哈希表将提高速度。在并行任务的情况下,您可以做两件事:1)在一个文件夹上只分配一个线程,这样线程就不会相互竞争,也不会出现名称冲突;2) 使用名称哈希表;在这种方法中,您需要哈希表上的锁/原子操作机制;我没有将此作为答案添加,因为我不熟悉node.js,可能在这种特殊情况下有更好的方法。@Tommi node.js是单线程的,所以只要没有多个实例运行,就不应该存在争用条件问题。我认为使用哈希表还是直接FS查找取决于查找是否会造成瓶颈。如果您正在以尽可能快的速度不间断地编写,请使用哈希表来提高速度。如果文件以分散的方式一次出现在一个文件中,那么FS查找可能会因为其较低的内存使用率而更可取。