Модификатор TODEPTH не работает

Обсуждение программ nnCron и nnCron LITE

Модификатор TODEPTH не работает

Postby Juris » Sun, 20 Feb 2005, 23:06

Поиск по форуму и хелпу к решению проблемы не привел, поэтому решил зарегистрироваться и создать новую тему.

Задача проста - удалять старые файлы и папки внутри папки "C:\Share\Обменник".
Поскольку после решения задачи "в лоб" остаются пустые папки, по аналогии с советом из ветки Удаление пустых папок вторым циклом запускаю цикл:
Code: Select all
    TODEPTH
    \ RECURSIVE
    FOR-FILES: "C:\Share\Обменник\*"
         IS-DIR?
         IF
           DIR-EMPTY: "%FOUND-FULLPATH%"
           IF
              DIR-DELETE: "%FOUND-FULLPATH%"
              GetLastError
              IF MSG: "FILE-DELETE error: %FOUND-FULLPATH%  %GetLastError%" THEN
           THEN
         THEN
    ;FOR-FILES

Причем нужно чтобы цикл сначала удалял самые глубоко-вложенные папки, потом - ближе к корню (иначе они будут считаться не пустыми).
В таком виде - просматривается только сама папка. Если раскомментировать RECURSIVE, то цикл действует в обычном порядке - т.е. сначала корень - потом все глубже во вложенные папки.

Как быть? У меня вообще не реагирует на присутствие модификатора TODEPTH :(

Win2k3 Serv. nncron.exe v 1.89 Build 997
Juris
 
Posts: 1
Joined: Sun, 20 Feb 2005, 22:43
Location: N. Novgorod

Re: Модификатор TODEPTH не работает

Postby VK » Mon, 21 Feb 2005, 14:24

Juris wrote:Задача проста - удалять старые файлы и папки внутри папки "C:\Share\Обменник". Как быть?


Я думаю имеет смысл запускать FOR-FILES в цикле, условием завершения которого было бы удаление хоть одного каталога. Как-то так (на работоспособность не проверял!):

Code: Select all
0 VALUE nodel_flag
\ ...
BEGIN
RECURSIVE
0 TO nodel_flag
    FOR-FILES: "C:\Share\Обменник\*"
         IS-DIR?
         IF
           DIR-EMPTY: "%FOUND-FULLPATH%"
           IF
              DIR-DELETE: "%FOUND-FULLPATH%"
              GetLastError
              IF
                  MSG: "FILE-DELETE error: %FOUND-FULLPATH%  %GetLastError%"
              ELSE
                  1 TO nodel_flag
              THEN
           THEN
         THEN
    ;FOR-FILES
nodel_flag 0 =
UNTIL
CU
VK
User avatar
VK
 
Posts: 680
Joined: Wed, 14 Jul 2004, 19:17


Return to nnCron forum (Russian)

Who is online

Users browsing this forum: No registered users and 2 guests