|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Поиск каталогов |
|
[решено] Поиск каталогов
|
Ветеран Сообщения: 753 |
Профиль | Отправить PM | Цитировать Здравствуйте ! Погуглив так и не нашёл ответа или примера как возможно найти папку 5DEL во всех подкаталогах папки TEST, глубина папки TEST неизвестна, и удалить все найденные каталоги 5DEL.
Заранее спс. |
|
------- Отправлено: 13:24, 26-12-2012 |
Старожил Сообщения: 352
|
Профиль | Отправить PM | Цитировать madmasles, В функции
Цитата:
Error: Subscript used with non-Array variable. Как возможно предотвратить ошибку ? Return 0 ? |
|
Отправлено: 11:13, 29-01-2013 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 254
|
Профиль | Отправить PM | Цитировать -TRM-, использовать проверенную функцию пару постов выше, которую я уже пол-года использую в синхронизаторе файлов. После синхронизации имеет место появление пустых каталогов в виду удаления файлов, пришлось сделать поиск и удаление пустых каталогов. Пользуюсь вроде полгода, ни одного вылета.
|
Отправлено: 11:35, 29-01-2013 | #12 |
Старожил Сообщения: 352
|
Профиль | Отправить PM | Цитировать AZJIO, Я так понял Вы предлагаете использовать функцию _FO_SearchEmptyFolders ?!
Дело в том, что в функции,madmasles, которую предложил madmasles, папки тоже находятся, но проблема ещё и в другом: Если путь С:\Papka1\Papka2\Papka3\Papka4\Papka5 и в ней получается пустая папка Papka5 и в папках С:\Papka1\Papka2\Papka3\Papka4 тоже ничего нет, то функция удаляет только Papka5, а не весь путь С:\Papka1\Papka2\Papka3\Papka4\Papka5, поэтому приходиться в цикл кидать и проверять один путь несколько раз. А у Вас как в этой функции дело обстоит? |
Отправлено: 11:59, 29-01-2013 | #13 |
Старожил Сообщения: 254
|
Профиль | Отправить PM | Цитировать -TRM-, а у нас два флага, удалять только совсем пустые каталоги и удалять каталог который может содержать сколько угодно пустых каталогов.
Цитата:
|
|
Последний раз редактировалось AZJIO, 29-01-2013 в 12:29. Отправлено: 12:24, 29-01-2013 | #14 |
Старожил Сообщения: 352
|
Профиль | Отправить PM | Цитировать AZJIO, А как правильно понять выражение &=
Цитата:
Где нужно вставить команду удаления папки ? Ведь мне выводится уже полный список путей пустых папок, а не по одному пути. |
|
Последний раз редактировалось -TRM-, 02-02-2013 в 11:54. Отправлено: 11:45, 02-02-2013 | #15 |
Старожил Сообщения: 367
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 12:00, 02-02-2013 | #16 |
Старожил Сообщения: 352
|
Профиль | Отправить PM | Цитировать AZJIO,
Цитата:
|
|
Последний раз редактировалось -TRM-, 02-02-2013 в 12:36. Отправлено: 12:20, 02-02-2013 | #17 |
Старожил Сообщения: 254
|
Профиль | Отправить PM | Цитировать -TRM-, Вот пример:
#include <Array.au3> #include <FileOperations.au3> $timer = TimerInit() ; таймер для скорости поиска $aFolderList = _FO_SearchEmptyFolders(@WindowsDir) ; путь для примера поиска, НЕ СЛЕДУЕТ УДАЛЯТЬ в нём пустые папки _ArrayDisplay($aFolderList, 'Время : ' & Round(TimerDiff($timer) / 1000, 2) & ' сек', -1, 0, '', '|', '№|Пустые папки') ; просмотр найденных пустыых папок If MsgBox(4 + 262144, 'Сообщения', 'Удалить пустые папки ?') = 6 Then ; если ответ равен 6, что значить "Да", тогда $err = '' ; переменная для лога ошибок For $i = 1 To $aFolderList[0] ; цикл удаления папок If Not FileRecycle($aFolderList[$i]) Then ; если не удалось переместить в корзину, тогда If Not (FileSetAttrib($aFolderList[$i], '-RST') And FileRecycle($aFolderList[$i])) Then ; если не удалось снять атрибуты и переместить в корзину, тогда $err &= $aFolderList[$i] & @CRLF ; пишем лог EndIf EndIf Next If $err Then MsgBox(0, 'Лог ошибок', $err) ; если лог ошибок не пустой, то смотрим его EndIf ; FileRecycle($aFolderList[$i]) ; удаление в корзину ; DirRemove($aFolderList[$i], 1) ; удаление навсегда 2. Я вот подумал, а что если у вложенной пустой папки атрибут только чтение? Тогда думаю папку невозможно удалить, если используется поиск с ключом 0, то есть надо получить именно папки которые пусты совсем, тогда есть гарантия что при неудалении атрибуты будут сняты, чтобы удалить. Цитата -TRM-:
|
|
Последний раз редактировалось AZJIO, 03-02-2013 в 05:57. Отправлено: 05:01, 03-02-2013 | #18 |
Старожил Сообщения: 352
|
Профиль | Отправить PM | Цитировать AZJIO, Выскакивет
For $i = 1 To $aFolderList[0] For $i = 1 To $aFolderList^ ERROR Какого ?, никак понять не могу, папка не содержит пустые папки и на ней затык Вот эта папка |
Последний раз редактировалось -TRM-, 04-02-2013 в 16:49. Отправлено: 16:36, 04-02-2013 | #19 |
Старожил Сообщения: 254
|
Профиль | Отправить PM | Цитировать |
Отправлено: 17:53, 04-02-2013 | #20 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Поиск, остановка процесса, поиск и замена файла на разных дисках | Gawr33 | Скриптовые языки администрирования Windows | 11 | 23-04-2011 23:09 | |
CMD/BAT - [решено] Поиск, остановка процесса, поиск и замена файлов на разных дисках | 4zz | Скриптовые языки администрирования Windows | 2 | 21-02-2011 16:07 | |
CMD/BAT - Синхронизация каталогов | Makzs | Скриптовые языки администрирования Windows | 4 | 03-11-2009 15:56 | |
Поиск скрытых каталогов на диске | fooms | Хочу все знать | 5 | 05-02-2004 09:56 | |
20-ка поисковиков и каталогов | Agent Comanche | Вебмастеру | 6 | 18-06-2003 01:52 |
|