On-line: tnsr2, гостей 2. Всего: 3 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 1139
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.03.10 11:07. Заголовок: Рекурсия... Обход папок...


Всем привет...
Собрался по удалять "мусор" у себя на винте. Решил написать в качестве пробы программку.
Подскажите алгоритм обхода папок - но только рекурсивно...
По обычному и сам знаю...

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 12 [только новые]


moderator




Пост N: 13
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 03.03.10 12:41. Заголовок: Andrey пишет: Подск..


Andrey пишет:

 цитата:
Подскажите алгоритм обхода папок - но только рекурсивно


Посмотри исходники в папке samples\Applications\SafetyScan

Andrey пишет:

 цитата:
Собрался по удалять "мусор" у себя на винте


Вышеуказанная программа предназначена именно для этой цели...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1140
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.03.10 13:07. Заголовок: Спасибо Григорий ! Я..


Спасибо Григорий !
Я долго искал такую простую программу...
А тут еще и с исходником... Красота...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1141
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.03.10 13:20. Заголовок: Блин, облом... :sm3..


Блин, облом...
Прога не ищет файлы с атрибутами:
Только для чтения
Архивный
Скрытый
Системный

Мне нужно удалить файлы после Outpost'a: op_cache.atr и op_cache.idx !
В каждой папке оставил !!!

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 330
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 03.03.10 15:14. Заголовок: Команда DEL /S не по..


Команда DEL /S не подходит?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1142
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 03.03.10 18:52. Заголовок: PSP пишет: Команда..


PSP пишет:

 цитата:

Команда DEL /S не подходит?



Посыпаю голову пеплом....
Совсем не знал про ключ /S ....
Придется как в том высказывание: Учите мат.часть Шура...
Пошел учить.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1474
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.07.10 23:37. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:
Посмотри исходники в папке samples\Applications\SafetyScan



Посмотрел. Никак не могу переделать под себя.

Требуется сделать ПОЛНЫЙ список файлов с путями ну допустим диска Д:
Подскажите, как это (рекурсию) реализовать ?


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1475
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 25.07.10 23:57. Заголовок: Нашел попроще: SAMP..


Нашел попроще: SAMPLES\BASIC\DirectoryRecurse

Только никак не могу понять следующую конструкцию:
if ProcName( 5 ) == "DIRECTORYRECURSE"
return {}
endif


Подскажите что это такое ?

Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 154
Зарегистрирован: 12.11.06
ссылка на сообщение  Отправлено: 26.07.10 07:40. Заголовок: Доброе утро! Если по..


Доброе утро!
Если поможет, то изврат на фоксе (код 100% подойдёт (там слабые возможности работы с каталогами)):

 
* -------------------------------------------------------------------
* Удаление непустого каталога. Рекурсивно стираю все файлы с самого
* нижнего уровня и удаляю каталоги от самого нижнего уровня.
* Для реального удаления обращаюсь к подфункции
function zDelDir
parameters cDir

do whil .t.
if zAnalDel(cDir)
exit
endif
enddo
retu .t.

* Анализ наличия каталогов. Удаление файлов и пустого каталога.
function zAnalDel
parameters cDir
local n1, i1, cdIn, lRet, nm
private cFile
cdIn = Upper(Alltrim(cDir))
lRet = .t.

* Если нет файлов или реальных подкаталогов. Выхожу по "истине"
n1 = aDir(ad1,cdIn+iif(Right(cdIn,1)="\","*.*","\*.*"),"AD")
if n1 <= 2
retu lRet
endi

* Делаю пока что-нибудь не удалю.
do whil .t.
n1 = aDir(ad1,cdIn+iif(Right(cdIn,1)="\","*.*","\*.*"),"AD")
lRet = .t.

* Определяю наличие подкаталога.
for i1 = 1 to n1
if Trim(ad1[i1,1])="." OR Trim(ad1[i1,1])=".."
loop
endif
if At("D",ad1[i1,5]) >= 1
cdIn = cdIn+iif(Right(cdIn,1)="\","","\")+Alltrim(ad1[i1,1])
lRet = .f.
exit
endi
next

* Подкаталог обнаружен. Ищем дальше вложенные подкаталоги.
if !lRet
loop
else

* Дошли до каталога самого низкого уровня. Удаляю все реальные файлы в нем и сам каталог.
n1 = aDir(ad1,cdIn+"\*.*","A")

* Удаляю все файлы каталога.
for i1 = 1 to n1
cFile = cdIn+"\"+Alltrim(ad1[i1,1])

erase &cFile
next

* Удаляю уже пустой каталог.
cFile = cdIn

RMDIR &cFile

* Каталог удалял. Процесс продолжаем.
lRet = .f.
endif
exit
enddo
retu lRet



Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1477
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.07.10 09:42. Заголовок: Andrey пишет: Если ..


Andrey пишет:

 цитата:
Если поможет, то изврат на фоксе (код 100% подойдёт (там слабые возможности работы с каталогами)):



Нет не поможет !
После примера SAMPLES\BASIC\DirectoryRecurse, другие не катят !!! MiniGUI - рулит ! Спасибо Григорию !
Там все четко и ясно ! Если интересно вот пример: Скрытый текст



Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 34
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 26.07.10 11:52. Заголовок: Andrey пишет: MiniG..


Andrey пишет:

 цитата:
MiniGUI - рулит !


MiniGUI тут не поможет.
Andrey пишет:

 цитата:
Если интересно вот пример: Скрытый текст


Это чистый код на Harbour, а MiniGUI - пользовательский графический интерфейс. Не нужно вводить других в заблуждение

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1478
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.07.10 14:27. Заголовок: AlexMyr пишет: Это ..


AlexMyr пишет:

 цитата:
Это чистый код на Harbour, а MiniGUI - пользовательский графический интерфейс.


Я в том смысле, что в MiniGui - куча примеров !!!
А в поставке Harbour их нет !

AlexMyr пишет:

 цитата:
Не нужно вводить других в заблуждение


Не буду !



Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1661
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 07.02.11 01:33. Заголовок: Кто нибудь может объ..


Кто нибудь может объяснить зачем в

aDim := DirectoryRecurse( cDir, "*.*", aResult) задавать aResult ???


Пример: Скрытый текст



Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 32
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет