PDA

Показать полную графическую версию : [решено] Перенести все файлы из каталогов/подкаталогов в субпапку, а пустые папки удалить


Alexander_88
23-11-2015, 07:10
Здравствуйте, подскажите, пожалуйста как решить задачу.

Нужно в главном каталоге, проверить все субпапки, найти в них папки/подпапки, переместить все файлы, находящиеся в этих папках/подпапках в субпапку (в которой мы ищем эти папки/подпапки), а потом удалить из этой субпапки все папки/подпапки (по сути они должны быть уже пустыми, т.к. все файлы оттуда мы переместили).
Также необходимо в главном каталоге не проводить операцию с папкой "MOVER" (т.е. поставить ее в игнор)

Пример:

F:/folder1/ (в этой папке файлы: (1.jpg, 2.jpg)
F:/folder1/folderA/ (в этой папке файлы: 1.txt, 2.txt)
F:/folder1/folderA/folderX/ (в этой папке файлы: 1.htm, 2.htm)
F:/folder1/folderB/ (в этой папке файлы: 1.doc, 2.doc)

F:/folder2/folderA/ (в этой папке файлы: 1.xml, 2.xml)

F:/MOVER/folderA/ (в этой папке файлы: 1.png, 2.png)

В скрипте мы указываем главный каталог диск F:/
т.е. получается субпапки у нас folder1, folder2, MOVER

После выполнения скрипта должна получиться такая структура:

F:/folder1/ (в этой папке файлы: 1.jpg, 2.jpg, 1.txt, 2.txt, 1.htm, 2.htm, 1.doc, 2.doc)

F:/folder2/ (в этой папке файлы: 1.xml, 2.xml)

F:/MOVER/folderA/ (в этой папке файлы: 1.png, 2.png)

т.е. остались только субпапки и все файлы из их каталогов/подкаталогов собрались в этих субпапках. Каталоги/подкаталоги всех субпапок удалились после того, как все файлы из них были перемещены в субпапки. Исключение - папка MOVER... в ней ничего не изменилось, не переместилось, не удалилось, т.е. просто эта папка игнорировалась.

Alexander_88
23-11-2015, 19:10
изменил на "Любой язык" :(

Alexander_88
23-11-2015, 19:28
Алгоритм проверки каждой субпапки например такой:

1 - проверяется субпапка... если в ней нету ни одной папки, то весь этот алгоритм начитает выполняться со следующей субпапкой. Если же находится одна или несколько папок, то каждая из них начинает проверяться таким образом... (пункт 2)
2 - Если папка пустая, то она удаляется, а если папка не пустая, то все содержимое данной папки переносится на уровень вверх (т.е. в суб папку). Далее цикл повторяется с первого пункта.

c4uran
24-11-2015, 14:49
не совсем то что у вас, но похоже, возможно решение из моей темы вам поможет

http://forum.oszone.net/thread-308328.html

Alexander_88
24-11-2015, 20:07
Спасибо, да не множко не то, но мне уже подсказали решение на BAT




© OSzone.net 2001-2012