Добрый день!
Такая задача: из внешнего источника приходят архивные файлы, складываются в определенную папку,
есть служба, которая мониторит эту папку и если там есть файлы, забирает для дальнейшей обработки.
Между поступлением файла и его дальнейшей обработкой 3-4 сек.
Службу отключить нельзя, как-то изменить ее невозможно.
Нужно отслеживать поступаемые файлы и если в имени файла есть "zzz", или "xxx", или "yyy" такие файлы
блокировать, не дать службе забрать для дальнейшей обработки.
Сделал это таким образом:
В целом скрипт работает, отслеживает нужные файлы,
проблема в том, что количество отслеживамых имен растет,
процесс проверки увеличивается.
Нельзя как-то ускорить процесс проверки?
Такая задача: из внешнего источника приходят архивные файлы, складываются в определенную папку,
есть служба, которая мониторит эту папку и если там есть файлы, забирает для дальнейшей обработки.
Между поступлением файла и его дальнейшей обработкой 3-4 сек.
Службу отключить нельзя, как-то изменить ее невозможно.
Нужно отслеживать поступаемые файлы и если в имени файла есть "zzz", или "xxx", или "yyy" такие файлы
блокировать, не дать службе забрать для дальнейшей обработки.
Сделал это таким образом:
Код:
HotKeySet("{F10}", "Quit")
Func Quit()
Exit
EndFunc
#include <File.au3>
$sPath = 'd:\Input\'
While 1
$FileList = _FileListToArray($sPath)
For $i = 1 To UBound($FileList) - 1
If StringInStr($FileList[$i], "zzz") > 0 Then
;блокирую от дальнейшей обработки
$oFile1 = FileOpen($sPath & $FileList[$i], 2)
ElseIf StringInStr($FileList[$i], "xxx") > 0 Then
$oFile2 = FileOpen($sPath & $FileList[$i], 2)
ElseIf StringInStr($FileList[$i], "yyy") > 0 Then
$oFile2 = FileOpen($sPath & $FileList[$i], 2)
EndIf
Next
Sleep(100)
WEnd
В целом скрипт работает, отслеживает нужные файлы,
проблема в том, что количество отслеживамых имен растет,
процесс проверки увеличивается.
Нельзя как-то ускорить процесс проверки?