Функции обхода дерева папок

Обход папок и подпапок в обычном и отсортированном порядке - по имени, размеру, дате(без времени). Включены функции для VFP 8.X и VFP 3.X (подойдет для FP 2.0).
Обновления: 18.04.2007; 19.04.2007; 05.08.2007.
Информацию об обновлениях смотрите ниже.

Простой пример использования:

cDir = "Ваша папка" && Сканируемая папка
cDirCur = fDirScan(cDir, cDir) && Подпапка в cDir (папка cDir не возвращается функцией обхода)

DO WHILE !EMPTY(cDirCur)

* ваша обработка подпапки...

* получение подпапки
cDirCur = fDirScan(cDirCur, cDir)
ENDDO

Сложный пример использования:

cDirStart = "Ваша папка" && Стартовая папка, должна располагатся "выше" (смотрите сортировка)
cDirEnd = "Ваша папка" && Конечная папка, должна располагатся "ниже" (папка cDirEnd c подпапками возвращается функцией обхода)
cDirCur = fDirScan(cDirStart, cDirEnd, "N") && Подпапка в cDirStart или след.папка после cDirStart, Сортировка по имени

DO WHILE !EMPTY(cDirCur)

* ваша обработка папки ...

* получение папки или подпапки
cDirCur = fDirScan(cDirCur, cDirEnd, "N")
ENDDO

Список подпапок - удаление папки

DIME adr[1], aff(1) && массив папок, файлы

* получение списка в массив
nDirs = fDirSL(@adr, "Папка")

* удаление c nDirs по 1 (иначе ошибки)
FOR nDir = nDirs TO 1 STEP -1
* удаление файлов
nFiles = ADIR(aff, adr(nDir) + "*.*", "HS")
FOR nFile = 1 TO nFiles
DELETE FILE (adr(nDir) + aff(nFile, 1))
ENDFOR
* удаление папки
RD (adr(nDir))
ENDFOR

Обновление: 18.04.2007.
1.Добавлен ReadMe.txt.
2.Исправлен z_DirTest.prg:
1) добавлены проверки и комментарии;
2) исключена ошибка в fDirSFP3();
3) протестировано в VFP и FP 2.0.

Обновление: 19.04.2007.
1.ReadMe.txt.
2.z_DirTest.prg:
1) исключена возможная ошибочная ситуация в fDirSFP3();
2) добавлена функция обхода только подпапок в указанной папке - fDirSub() для VFP 8.0, и fDirSubD() для VFP 3.0 и FoxPro 2.0;
3) протестировано в VFP и FP 2.0.

Обновление: 05.08.2007.
1.Обновлен ReadMe.txt.
2.Изменен z_DirTest.prg:
1) добавна функции fDirL(), fDirSL();
2) протестировано в VFP 8.X.
3.Добавлен z_DirTest3.prg:
1) добавна функции fDirL(), fDirSL();
2) протестировано в VFP 3.0 и FP 2.0.

Автор: INB

Автор публикации

не в сети 15 лет

INB

0
Комментарии: 0Публикации: 3Регистрация: 27-08-2006
0
Вложенные файлы
#
Тип файла
Размер
Название
1 .zip 8,39 КБ 577z_dirtest
Оставить комментарий
Авторизация
*
*
Регистрация
*
*
*
Пароль не введен
*
Генерация пароля