powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как удалить все файлы во временной папке?
9 сообщений из 9, страница 1 из 1
Как удалить все файлы во временной папке?
    #33565592
sanya_tir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача: Нужно при закрытии программы удалить все файлы в папке c:\temp, но при этом там возможно будут открытые файлы, их нужно оставить, удаляться должно без всевозможных запросов-подтверждениев.

поставил set safety off
Пробовал:
1. erase 'c:\temp\*.*' - спотыкается на открытых файлах (выдает ошибку)

2. run del c:\temp\*.* - выдает запрос "вы уверены..." но после этого удаляет все как мне и нужно (не трогая открытые файлы)

3. run del c:\temp\*.* /q - только мигнет командным окном на долю секунды, но ничего не удаляет. При этом эта же команда в командной строке срабатывает правильно, а из фокса не хочет.

Как быть? или остается только вариант перебирать все файлы, проверять на открытость и удалять? Есть ведь команда del c:\temp\*.* /q, почему из фокса она не срабатывает нормально. (VFP 6)

Спасибо.
...
Рейтинг: 0 / 0
Как удалить все файлы во временной папке?
    #33565620
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
run del c:\temp\*.* /-p
...
Рейтинг: 0 / 0
Как удалить все файлы во временной папке?
    #33565629
sanya_tir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AleksMedrun del c:\temp\*.* /-p

не работает
...
Рейтинг: 0 / 0
Как удалить все файлы во временной папке?
    #33565654
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если "в лоб", то можно так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
* Подавляем обработчик ошибок
LOCAL lcError
lcError = ON("ERROR")
ON ERROR *

LOCAL lnI, laDir( 1 )
FOR lnI =  1  TO ADIR(laDir,"C:\temp\*.*")
	DELETE FILE ("C:\temp\"+laDid[m.lnI, 1 ])
ENDFOR

* Восстанавиливаю обработчик ошибок
ON ERROR &lcError

Тут можно и индикатор прогресса воткнуть, и журнал удаления создать...

Вопрос ведь не в том, чтобы не выдавалось сообщение об ошибке, а в том, чтобы ПОСЛЕ этого сообщения процесс удаления не прерывался.
...
Рейтинг: 0 / 0
Как удалить все файлы во временной папке?
    #33565676
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМЕсли "в лоб", то можно так:

[src]
* Подавляем обработчик ошибок
LOCAL lcError
lcError = ON("ERROR")
ON ERROR *

Владимир, а разве в VFP 6.0 еще TRY... CATCH ... ENDTRY не появился?
С уважением, Алексей.
...
Рейтинг: 0 / 0
Как удалить все файлы во временной папке?
    #33565689
sanya_tir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо ВладимирМ.

сделал так

set safety off
LOCAL lcError
lcError = ON("ERROR")
on error *
erase 'c:\temp\*.*'
ON ERROR &lcError

все работает :)
...
Рейтинг: 0 / 0
Как удалить все файлы во временной папке?
    #33565705
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не уверен, что это будет нормально работать.
А что если ERASE сразу наткнется на занятый файл и "отвалится" по ошибке?
Мне кажется, что перебор надежнее.
С уважением, Алексей
...
Рейтинг: 0 / 0
Как удалить все файлы во временной папке?
    #33565781
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksey-Kа разве в VFP 6.0 еще TRY... CATCH ... ENDTRY не появился?
Нет.

TRY... CATCH ... ENDTRY появился в VFP8
...
Рейтинг: 0 / 0
Как удалить все файлы во временной папке?
    #33578618
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi sanya_tir!

Первый вопрос - ЗАЧЕМ это нужно делать? Ты сам насоздавал этих файлов? Если
так - то просто нормально пиши работу со временными файлами - если где-то
создал - то потом его и удаляй.
Если просто удалить "чужой мусор" - то оно конечно можно, но зачем - ведь
есть стандартная программа в винде которая в частности и temp папки чистит,
а кроме того то что файл в temp никем не "занят" ещё не значит что его можно
спокойно удалять! Мало ли как чужая программа написана - может она не держит
файл посточнно открытым, НО может упасть, если его удалить не закрыв
программу...

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как удалить все файлы во временной папке?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]