urrya
Новичок
- Сообщения
- 159
- Репутация
- 1
Доброго времени суток дамы и гос-да.
Снова злосчастный код выдаёт ошибку!
Но главное не постоянно, а лишь изредка.
код -
каталоги отправляются каждые 6 мин., но иногда, после передачи на сервер третьего каталога или позже, выдаёт ошибку о переполнении стека -
Error: Recursion level has been exceeded - AutoIt will quit to prevent stack overflow.
помогите пожалуйста исправить .
P.S. Зачем вообще рекурсия в функции
если всё ровно будет ошибка по истечению лимита повторов? абсурд какой то.
Снова злосчастный код выдаёт ошибку!
Но главное не постоянно, а лишь изредка.
код -
Код:
#include <String.au3>
#include <Array.au3>
#include <FTPEx.au3>
Local $Open = _FTP_Open('ftp')
Local $Conn = _FTP_Connect($Open, $server, $username, $pass, 1)
_FTP_DirSetCurrent($Conn, '/' & $fFoldServer) ; вход в папку
Local $_Array = _FTP_ListToArray($Conn, 1, $INTERNET_FLAG_RELOAD)
Local $chh = 0, $ich = 0
If FileExists($fFoldLocal_dir_name) Then
Do
If $_Array[0] = 0 Then
$_DirGet = _FTP_DirGetCurrent($Conn) ; Возвращает текущий каталог на FTP сервере.
If $_DirGet == '/' & $fFoldServer Then _FTP_DirCreate($Conn, $fFoldServer_dir_name) ; создаёт каталог
_FTP_DirCreate($Conn, $fFoldServer_dir_name & $filerar2) ; создаёт каталог
$put = _FTP_DirPutContents($Conn, $fFoldLocal_dir_name, $fFoldServer_dir_name & $filerar2, 1)
Else
$chh = $_Array[0]
If $_Array[$chh] = $dir_name Then ; если последняя папка сегодняшней даты
_FTP_DirCreate($Conn, $fFoldServer_dir_name & $filerar2) ; создаёт каталог
$put = _FTP_DirPutContents($Conn, $fFoldLocal_dir_name, $fFoldServer_dir_name & $filerar2, 1)
Else ; иначе создаёт каталог
_FTP_DirCreate($Conn, $fFoldServer_dir_name) ; создаёт каталог
_FTP_DirCreate($Conn, $fFoldServer_dir_name & $filerar2) ; создаёт каталог
$put = _FTP_DirPutContents($Conn, $fFoldLocal_dir_name, $fFoldServer_dir_name & $filerar2, 1)
EndIf
EndIf
If $put <> 1 Then $ich -= 1
_FTP_DirSetCurrent($Conn, $fFoldServer_dir_name & $filerar2) ; вход в папку
$_Arrayf = _FTP_ListToArray($Conn, 2, $INTERNET_FLAG_RELOAD)
If $_Arrayf <> 0 Then
$2Conn = _FTP_Close($Conn)
$2Open = _FTP_Close($Open)
$ich = 10
DirRemove($fFoldLocal_dir_name, 1)
Else
$ich += 1
EndIf
Until $ich = 10
EndIf
каталоги отправляются каждые 6 мин., но иногда, после передачи на сервер третьего каталога или позже, выдаёт ошибку о переполнении стека -
Error: Recursion level has been exceeded - AutoIt will quit to prevent stack overflow.
помогите пожалуйста исправить .
P.S. Зачем вообще рекурсия в функции
Код:
_FTP_DirPutContents()