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

How do I bulk change the folder hierachy of files?

我目前有以下路径:

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

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

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

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

我觉得有一种比一堆 copy/pasting 更简单、更快捷的方法来做到这一点。请帮忙?

我不知道你在用什么语言编写,但大多数运行时库都有一个 "move" 函数可以进行复制。他们还有从文件夹中获取文件列表的功能。

那么基本思路就是:

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 功能的好处在于它可以通过更改目录条目来移动文件,而不必实际将位从一个位置复制到另一个位置,然后删除旧文件.如果源和目标在同一个逻辑驱动器上,这可以进行得非常快。