Этот ответ основан на Python, поэтому он должен работать как на OSX, так и на Windows, при условии, что вы устанавливаете Python (и для справки, это из головы).
import os
import shutil
path = "C:/dir" # the directory tree you want to "explode"
store= "C:/store" # where all files will be stored
for dirpath, dirnames, filenames in os.walk(path):
name = ""
for c in dirpath:
if c != "/": # if the character is different than the current directory character
name += s
else:
name += "_" # "quick and dirty" way of resolving name conflicts
for files in filenames:
orig_loc = os.path.join(dirpath,files)
copy_loc = os.path.join(store,name + "_" + files)
shutil.copy2(orig_loc,copy_loc)
Это должно скопировать все файлы (плюс метаданные) из структуры path
в папку store
.
Если вас не волнуют конфликты имен, не используйте код между name = ""
и for files in filenames
выражениях имен файлов . Этот код выполняет преобразование /
в _
и после этого добавляет очищенное имя каталога к именам файлов.
Это сохранит исходную структуру, которую вы можете затем удалить с помощью shutil.rmtree(path)