如何在directory_iterator循环中读取新创建的路径?

问题描述

我正在尝试使用c ++文件系统重命名directory_iterator中遇到的文件

示例:我在目录中有名为1、2、3、1000的文件(为简单起见,没有扩展名),并且我想将它们重命名为1、2、3、4。代码输出1、4(其中有4个删除文件1000的内容删除两个文件)。经过一些调试后,我意识到代码可以这样运行:

重命名(按此顺序): 一对一 1000至2(删除/覆盖文件2) 2至3(删除/覆盖文件3) 3至4(删除/覆盖文件4)

这是文件1000的内容到达文件4的方式。

我尝试将新遇到的文件重命名为长度为12的随机字符串会遇到问题,但是问题在于directory_iterator无法访问那些文件,因为它已经遍历它们并重命名了它们。>

因此,上面的示例将如下所示(按顺序):

1比1

1000到2(重命名用于将原始2重命名为长度为12的随机字符串的随机函数

2(最初为1000)到3(重命名用于将原始3重命名为长度为12的随机字符串的随机函数

,最后的路径列表如下所示: 1个 3(最初为1000) 长度为12的随机字符串 长度为12的随机字符串

由于directory_iterator已经使用过这些文件,因此无法访问这些文件是合乎逻辑的。

我考虑过的解决方案是创建一个向量,该向量将存储新创建的文件,并通过最初使用的相同重命名循环将它们推送,但这只是代码重复。

问题是,我可以访问上面示例中重命名随机字符串的那些文件吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)