使用C#

时间:2018-09-14 01:32:46

标签: c# file-io parallel.foreach

我有一个有趣的问题要解决,与目录重命名有关。

问题: 带有大量子文件夹的父文件夹,这些子文件夹按顺序命名 示例:

  • data-500
  • data-501
  • data-502
  • 数据-[n]

上述每个文件夹中都包含子文件夹和文件。名称的顺序非常重要,它们必须与上面的编号顺序相符。

在某些情况下,某些文件夹会被删除,而我的问题是再次重命名目录,以便所有文件按顺序出现

例如,如果它从500开始到600,并且有人删除了550,那么现在此逻辑应该将所有顺序从500重新命名为599

由于父文件夹包含大量子文件夹,因此我需要应用逻辑以在PARALLEL中运行

基本上,重命名 PARALLEL

中的文件夹

尝试:Directory.Move()试图移动文件夹中的所有内容,这首先是浪费时间,其次是在并行运行时发生冲突(引发异常),因为另一个线程可能正在尝试在同一文件夹上播放

尝试过:VisalBasic..Rename ..(),其结果也相同,因为它只是Directory.Move()顶部的包装器

将“并行”运算减少为2并不能解决此问题。

唯一有效的方法是Powershell RenameItem(一次运行2个线程),它的确很不错,但我需要在C#中使用某些功能(请不要在C#中运行powershell)

因此,总而言之,需要重命名(可能不移动)并以并行逻辑运行。

这可能吗?

0 个答案:

没有答案