Что нового

[Файловая система] Контроль размера папки

xlgrgrc

Знающий
Сообщения
91
Репутация
7
Вопрос такой. Как сделать что бы скрипт контролировал папку. В частности \opera\profile\cache4

Нужно что бы раз в минуту скрипт заходил в папку и удалял все файлы ниже 3 мб. И желательно не в корзину а мимо.

Используя мышку и Total Comander вопрос решаемый но очень неудобно. Занята и мышь и компьютер.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
xlgrgrc
Попробуйте так:
Код:
#include <File.au3>

$sPath = "...\opera\profile\cache4" ;путь к папке
HotKeySet("^{F12}", "_Exit") ;Ctrl+F12 - выход
While 1
	$FileList = _FileListToArray($sPath, "*", 1)
	For $i = 1 To UBound($FileList) - 1
		If FileGetSize($sPath & "\" & $FileList[$i]) < 3 * 1024 * 1024 Then
			;FileDelete($sPath & "\" & $FileList[$i])
			MsgBox(0, $i, $sPath & "\" & $FileList[$i])
		EndIf
	Next
	Sleep(60000)
WEnd

Func _Exit()
	Exit
EndFunc   ;==>_Exit
 
Автор
X

xlgrgrc

Знающий
Сообщения
91
Репутация
7
Спасибо большое. Щас разбираюсь как это работает- что за функция - __FileListToArray - её нет в хелпе.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
xlgrgrc
В англ. справке User Defined Function Reference - File Management - _FileListToArray
Я код поправил.
 
Автор
X

xlgrgrc

Знающий
Сообщения
91
Репутация
7
Да я заметил что поменял. ЩАс работает. Большой спасибо. )))
Я сам пользуюсь русской справкой только)
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
xlgrgrc
В русской справке многое устарело.
 
Автор
X

xlgrgrc

Знающий
Сообщения
91
Репутация
7
Слушай а вот ещё вопрос. Прога теперь отлично удаляет но как не пытался ни как не реагирует на размер файла. Меня напрягают файлы ниже 38 кб.

If FileGetSize($FileList[$i]) < 40000 Then
FileDelete($sPath & "\" & $FileList[$i])

Но она удаляет ровно все и те что 4 мб (4 * 1024 * 1024) Почему так?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
xlgrgrc
Я опять поправил код. :-[
 
Верх