如何批量更改文件的文件夹层次结构?
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.GetFiles
和 File.Move
以反映您正在使用的任何运行时库。我从 .NET 运行时获得了这些名称,尽管我可能把参数弄错了。
File.Move
功能的好处在于它可以通过更改目录条目来移动文件,而不必实际将位从一个位置复制到另一个位置,然后删除旧文件.如果源和目标在同一个逻辑驱动器上,这可以进行得非常快。
我目前有以下路径:
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.GetFiles
和 File.Move
以反映您正在使用的任何运行时库。我从 .NET 运行时获得了这些名称,尽管我可能把参数弄错了。
File.Move
功能的好处在于它可以通过更改目录条目来移动文件,而不必实际将位从一个位置复制到另一个位置,然后删除旧文件.如果源和目标在同一个逻辑驱动器上,这可以进行得非常快。