|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Построение дерева каталогов |
|
|
[решено] Построение дерева каталогов
|
Старожил Сообщения: 367 |
Профиль | Отправить PM | Цитировать
Всем привет. очередной мой нубский опус из элементарных вещей, изученных мной при достижении азов данного языка.
На этот раз передо мной встала задача - построить древовидную структуру файлов и папок для составления отчета. после хождения по просторам интернета, ничего стоящего (бесплатных естественно) кроме Karen's directory print и zdp не нашел. Но меня ждали разочарования по каждой из прог. Первая всюду вставляет ненужные мне и моему начальству строки типа мэйд бай бла бла бла, а вторая в таком непотребном виде представляет, что смотреть уже не хочется. Поэтому я решил осуществить сие дело своими (и AutoIt) силами. И так - скрипт строит дерево каталогов в текстовом и html видах с указанием кол-во файлов и папок в конце. Во втором случае есть подсветка определенных типов файлов условно разбитых на категории, типа: текстовые файла, архивы, видео-файлы, аудио файлы и тд и также непосредственно перейти в нужную папку щелкнув по ссылке. При желании список можно легко дополнить внеся соответствующие изменения в include файл со списком расширений придерживаясь формата. как обычно, ни на что не претендует, лично моим требованиям удовлетворяет. если есть что сказать/исправить/дополнить, то как говорится - you're welcome. PS: не выбирайте папки с большим кол-вом файлов, скорость оставляет желать лучшего. Updated Дополнено до версии 2 * немного исправлены разделители иерархии, как в текстовом так и в html-ном вариантах + время генерации файла с деревом Маааленький апдейт до версии 2.1 + Добавил favicon.ico PS: имеется небольшой баг при наличии одних только папок, без файлов внутри в виде лишней полоски в html - варианте (см. скрин) победить не смог, бился долго. может у кого возникнут идеи. буду только рад PPS: Спасибо Creat0R'у за исправления по ускорению Спасибо SyDr за подсказку о встроенной виндовой тулзе, которая легла за основу нового варианта html-версии построения |
|
Отправлено: 01:48, 28-08-2009 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Неплохо!
Я тут переделал немного(?) - ускорение плюс читабельность кода. В архиве две версии... - Первая более шустрая, но в ней есть минус - имена файлов и папок сортируются в том порядке, в котором были найдены. - Вторая версия медленнее, т.к использует отдельные обработки файлов и папок, т.е для папок и файлов запускается новый поиск, что замедляет работу - но зато сортировка работает как и задуманно(?). P.S Для ускорения обработки циклов, кроме прочего я изменил метод поиска расширении файлов, тут быстрее искать через StringInStr, чем вызывать поиск в массиве который использует лишние циклы. |
------- Последний раз редактировалось Creat0R, 28-08-2009 в 16:24. Отправлено: 05:14, 28-08-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 215
|
Профиль | Отправить PM | Цитировать В состав винды входит программа TREE. Делает тоже самое. Правда, без всякого оформления.
Но вещь всё равно полезная. Спасибо. |
------- Отправлено: 10:40, 28-08-2009 | #3 |
Старожил Сообщения: 367
|
Профиль | Отправить PM | Цитировать Привет, Creat0R
Спасибо за дополнения. Непривычно немножко из-за переобозначений, но для постороннего глаза, наверное, действительно читабельнее По поводу скорости - да, действительно, ускорение налицо. Причем даже во втором скрипте, где отдельно обрабатываются файлы и папки, как в моем скрипте. Отсюда я делаю вывод, что вся медленность действительно была в поиске по расширениям через массивы, и возможно из-за filewriteline вместо filewrite с возвратом каретки в конце. PS: я наверное возьму на вооружение именно второй вариант, так как мне кажется что лучше когда сначала идут папки а потом уже файлы в стиле total commander'а |
------- Отправлено: 10:43, 28-08-2009 | #4 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата kaster:
Например строковые переменны префиксятся $s, массивы $a. Подробнее тут (Variable Names). Цитата kaster:
|
|||
------- Отправлено: 10:54, 28-08-2009 | #5 |
Старожил Сообщения: 367
|
Профиль | Отправить PM | Цитировать SyDr,
надо же изобрести колесо, иначе скушно а оформление к выводу от TREE можно легко приделать при желании. PS: спасибо, я не знал про эту прогу. сколько искал в гугле, ни одного упоминания почему-то о ней. Кстати работает он гораздо быстрее чем наши с Creat0R'ом скрипты Цитата Creat0R:
Цитата Creat0R:
|
||
Отправлено: 10:54, 28-08-2009 | #6 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата kaster:
Цитата kaster:
Цитата kaster:
|
|||
------- Отправлено: 11:08, 28-08-2009 | #7 |
Старожил Сообщения: 367
|
Профиль | Отправить PM | Цитировать Цитата Creat0R:
Цитата kaster:
Цитата Creat0R:
вобщем, я понял, возьму на вооружение |
|||
------- Отправлено: 11:13, 28-08-2009 | #8 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата kaster:
|
|
Отправлено: 11:19, 28-08-2009 | #9 |
Старожил Сообщения: 367
|
Профиль | Отправить PM | Цитировать кстати, Creat0R, условие @extended при проверке на корень диска почему то не работает должным образом.
если поставить условие которые было у меня все норм. можешь проверить |
------- Отправлено: 12:42, 28-08-2009 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Прочие - Программы для создания дерева каталогов. | Pooshit | Программное обеспечение Windows | 45 | 19-07-2020 20:20 | |
CMD/BAT - [решено] Backup дерева папок по маске | newb1e | Скриптовые языки администрирования Windows | 4 | 27-07-2009 17:28 | |
Теория - Подсчёт узлов двоичного дерева рекурсивной функцией | Gamover jr | Программирование и базы данных | 6 | 11-11-2007 18:15 | |
Создание нового доменного дерева в существующем лесу | Wolf3D | Microsoft Windows NT/2000/2003 | 9 | 16-05-2006 18:41 | |
Построение графика | dimon55 | Хочу все знать | 1 | 05-05-2004 21:26 |
|