如何批量更改文件的文件夹层次结构?

时间:2018-06-19 14:59:14

标签: database data-structures renaming

我目前有以下路径:

E:\ Testing \ mp3_part1 \ x \ y \ filename.mp3

有200个“ x”文件夹和5个“ y”文件夹。每个y文件夹中包含1-1000个文件

对于所有最终文件,我需要将路径名更改为:

E:\ Testing \ y \ x \ filename.mp3

我觉得比一堆复制/粘贴有一种简单,快捷的方法。请帮忙吗?

1 个答案:

答案 0 :(得分:0)

我不知道您使用的是哪种语言,但是大多数运行时库都具有“移动”功能来执行复制。它们还具有从文件夹中获取文件列表的功能。

那么,基本思想是:

for x in xValues
    for y in yValues
        sourceDir = "E:\Testing\mp3_part1\" + x + "\" + y + "\"
        destDir = "E:\Testing\" + y + "\" + x + "\"
        sourceFiles = Directory.GetFiles(sourceDir, "*.mp3")
        for each file in sourceFiles
            File.Move(file, destDir + file.name)

您需要更改Directory.GetFilesFile.Move以反映您正在使用的任何运行时库。我从.NET运行库中获得了这些名称,尽管可能我弄错了参数。

关于File.Move功能的好处是,它可以通过更改目录条目来移动文件,而不必将位从一个位置实际复制到另一位置,然后删除旧文件。如果源和目标位于同一逻辑驱动器上,则可以非常快速地进行此操作。