|
Удалить папки
|
|||
---|---|---|---|
#18+
Привет всем ! Помогите пожалуйста! При выходе из моей программы, программа создает резервную копию базы данных в каталоге "C:\Rez_Copy\16102012" (16102012 - это число, месяц, год). В результате работая каждый день, в папке "C:\Rez_Copy\" находятся много папок. Как мне программно удалить все лишние папки, оставив 3 последние папки? Спасибо за ваше время! ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2012, 08:09 |
|
Удалить папки
|
|||
---|---|---|---|
#18+
ADIR() - получает список подпапок ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2012, 08:28 |
|
Удалить папки
|
|||
---|---|---|---|
#18+
Не могу разобраться, что я делаю не так? CLEAR pat_kat = sys(5)+sys(2003)+"\Rez_copy\" gnDbcnumber = ADIR(pat_kat) FOR nCount = 1 TO gnDbcnumber ? gaDatabase(nCount,1) ENDFOR ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2012, 08:53 |
|
Удалить папки
|
|||
---|---|---|---|
#18+
-tim-, VFP Вам же черным по белому пишет: pat_kat не массив Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2012, 09:18 |
|
Удалить папки
|
|||
---|---|---|---|
#18+
Но почему = 0 ? gnDbcnumber = 0 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2012, 09:24 |
|
Удалить папки
|
|||
---|---|---|---|
#18+
Привет всем ! Помогите пожалуйста! При выходе из моей программы, программа создает резервную копию базы данных в каталоге "C:\RAB_VFP\ZARP_NET\Rez_Copy\16102012" (16102012 - это число, месяц, год). В результате работая каждый день, в папке "C:\RAB_VFP\ZARP_NET\Rez_Copy" находятся много папок. Как мне программно удалить все лишние папки, оставив 3 последние папки? CLEAR pat_kat = sys(5)+sys(2003)+"\Rez_copy\*" gnDbcnumber = ADIR(gaDatabase, pat_kat, "D") FOR nCount = 1 TO gnDbcnumber && цикл по количеству папок ? gaDatabase(nCount,1) && отображаются имена папок IF nCount >= 3 aa1 = sys(5)+sys(2003)+"\Rez_copy\" + gaDatabase(nCount,1) kommand="RMDIR "+ALLTRIM(aa1) ! &kommand && Удалить папку, но удаление не происходит, подскажите почему ENDIF ENDFOR Может у вас есть другие примеры, прошу помогите! Спасибо за ваше время! ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2012, 13:11 |
|
Удалить папки
|
|||
---|---|---|---|
#18+
Папка удаляется только если в ней пусто. Если там подпапок нет, то так: Код: sql 1. 2. 3. 4. 5.
только такой проверкой "IF nCount >= 3" ты оставишь какие-то 2 папки, и не факт что последние. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2012, 13:38 |
|
Удалить папки
|
|||
---|---|---|---|
#18+
Dima TПапка удаляется только если в ней пусто.а если не пусто, то в поиск по "scripting.filesystemobject" ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2012, 13:50 |
|
Удалить папки
|
|||
---|---|---|---|
#18+
tanglirа если не пусто, то в поиск по "scripting.filesystemobject" ADIR() c рекурсией еще есть ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2012, 14:07 |
|
Удалить папки
|
|||
---|---|---|---|
#18+
А как определить, что последние, или как их построить по порядку? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2012, 14:27 |
|
Удалить папки
|
|||
---|---|---|---|
#18+
-tim-А как определить, что последние, или как их построить по порядку? ADIR()Заносит в массив информацию о файлах и возвращает количество файлов. Синтаксис ADIR(ArrayName [, cFileSkeleton [, cAttribute [, cCreatorType]]]) Параметры ArrayName Задает имя массива. Если задано имя несуществующего массива, Visual FoxPro автоматически создает такой массив. Если задано имя существующего массива, который не в состоянии вместить всю информацию, Visual FoxPro автоматически увеличивает размер массива надлежащим образом. Если в массиве больше элементов, чем необходимо, Visual FoxPro его укорачивает. Если массив уже существует и функция ADIR( ) возвращает 0, не найдя соответствующих файлов, то массив не изменяется. Если массив не существует и функция ADIR( ) возвращает 0, то массив не создается. В следующей таблице описано содержимое каждого столбца массива и тип данных столбца: Столбец Содержимое массива Тип данных 1 Имена файлов Символьный 2 Размеры файлов Числовой 3 Даты создания файлов Дата 4 Время создания файлов Символьный 5 Атрибуты файлов Символьный Последний столбец массива содержит атрибуты соответствующих файлов. Каждый атрибут файла обозначается буквой, причем файл может иметь несколько атрибутов. В следующей таблице показано, какие атрибуты представляют те или иные буквы: Буква Атрибут A Архивный - чтение/запись (отсутствует в FoxPro для Macintosh) H Скрытый R Только для чтения S Системный D Каталог cFileSkeleton Задает шаблон имен файлов, определяющий некую группу файлов, информацию о которых вы намерены сохранить. Возможны, например, следующие критерии: все табличные файлы, все текстовые файлы, все файлы с именами, содержащими букву A в качестве первой буквы, и т.д. В подобных случаях в шаблоне cFileSkeleton часто используются символы подстановки * и ?. Вопросительный знак обозначает одиночный символ, а звездочка ѕ любое количество символов. В шаблоне можно использовать любое число символов подстановки в любых позициях. В Visual FoxPro, FoxPro для Windows и FoxPro для MS-DOS можно задать диск и/или каталог, где будет вестись поиск нужных файлов. Если диск и каталог не заданы, информация о файлах текущего каталога помещается в массив. В FoxPro для Macintosh можно задать том и/или каталог, в котором будет вестись поиск нужных файлов. Если том и каталог не заданы, FoxPro для Macintosh помещает информацию о файлах текущего каталога в массив. cAttribute Указывает тип файлов, о которых нужно собрать информацию: подкаталоги, скрытые или системные файлы или имя тома. Можно задать любую комбинацию букв D, H и S. Если задана буква D, то помимо имен файлов, отвечающих шаблону cFileSkeleton, будут возвращены имена подкаталогов текущего каталога. Если задана буква H, возвращается информация о скрытых файлах, соответствующих шаблону cFileSkeleton. Если задана буква S, будет возвращена информация о системных файлах, соответствующих шаблону cFileSkeleton. Если в качестве cFileSkeleton задана пустая строка, будут возвращены только имена подкаталогов, информация о скрытых файлах или о системных файлах. В числе атрибутов cAttribute можно указать букву V, чтобы получить имя тома текущего диска. Если буква V задана вместе с D, H или S, в массив возвращается только имя тома. Оно сохраняется в первом элементе массива, остальная часть массива отсекается. cCreatorType Допустим только в FoxPro для Macintosh. Результат Числовой Комментарии Для каждого файла функция ADIR( ) заносит в массив его имя, размер, дату и время создания и атрибуты. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2012, 14:35 |
|
Удалить папки
|
|||
---|---|---|---|
#18+
Спасибо, я все понял! ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2012, 14:41 |
|
Удалить папки
|
|||
---|---|---|---|
#18+
-tim-А как определить, что последние, или как их построить по порядку? Если бы у тебя имя папки было в виде ГГГГММДД, т.е. 20121016, то так Код: sql 1. 2. 3. 4. 5. 6.
Если память не изменяет - там в массиве еще папки "." и ".." тогда не -3, а -5 Если как у тебя 16102012, то записывать все в курсор, преобразовывать в дату, сортировать, потом удалять кроме 3-х последних. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2012, 14:42 |
|
|
start [/forum/topic.php?fid=41&msg=38000475&tid=1583391]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 145ms |
0 / 0 |