FTPWI.GetFileSize
Описание
Получает размер файла (в байтах), размещенного на сайте FTP.
ПараметрыURL
(строка) Полный ftp адрес к файлу, чей размер нужен. Например, ftp://ftp.myftpsite.com/updates/myfile.txt.
Username
(строка) Имя для входа на FTP сайт. По умолчанию для анонимного FTP это "anonymous".
Password
(строка) Пароль для доступа к FTP сайту, что идет совместно с параметром FTP Username.
Для анонимного FTP, используется ваш адрес электронной почты или пароль по умолчанию "guest<".
Mode
(число) Используемый режим для обращения к файлу. Выбор из:
Примечание: Этот параметр в основном представлен для согласования между действиями FTPWI.
Timeout
(число) Максимальное время в секундах, в течении которого действие будет ожидать ответа после попытки соединения. Значение по умолчанию равно 20 секундам.
Примечание: Значения тайм-аута интерпретируются различными способами во время связи клиента с сервером. В результате фактический тайм-аут, используемый соединением, может отличаться от указанного значения.
Port
(число) Порт для подключения. В большинстве случаев значение по умолчанию (порт 21) является стандартным для FTP.
PassiveMode
(логический)
Использование пассивного/брандмауэр режима при загрузке файла. Пассивный режим (также известный как "режим брандмауэра") требуется всякий раз, когда нужна передача файлов на FTP сервер или от FTP сервера из-за брандмауэра. Прохождение значения по умолчанию истина - true включает пассивный режим, а ложь - false отключает его.
Обычно, ваш компьютер делает соединение с FTP сервером, а FTP сервер отвечает открытием соединения обратно с вашим компьютером. Это возвращение соединения не будет работать если ваш компьютер не будет доступен напрямую из Интернета. В пассивном режиме, оба соединения делаются из вашего компьютера, так что FTP серверу не нужно делать никакого соединения - он просто пассивно ждет, когда ваш компьютер сделает оба соединения с ним.
Большинство серверов поддерживают соединения в пассивном режиме, так что вообще лучше оставить этот параметр включенным.
CallbackFunction
(функция) Имя функции, которая будет вызываться всякий раз когда происходит операция загрузки. (Эту возвращающуюся функцию можно использовать для отображения хода выполнения операции загрузки, своим собственным способом.)
Примечание: Если в CallbackFunction установлено значение nil, тогда информация о протекании процесса будет отправлена во встроенное диалоговое окно состояния, предполагая что оно в настоящий момент видимое. (Можно показать или скрыть диалоговое окно состояния действиями StatusDlg.Show или StatusDlg.Hide соответственно.) Возвращающаяся функция должна иметь возможность принять следующие параметры: Message(строка) Или пустая строка ("") или информационное сообщение отправленное сервером, такое как например "Resolving host name" или "Connecting to Server". Возвращающая функция должна возвращать логическое значение (истина (true) или ложь (false)), показывающее следует ли продолжать обращение к файлу:
ВозвратResultVariable
(число) Размер файла на FTP сайте (в байтах). Если размер файла не может быть найден, возвращается -1.
Можно использовать Application.GetLastError для определения случился ли отказ в работе этого действия и почему.
Смотрите также: Связанные действия
ПримерыПример 1nFileSize = FTPWI.GetFileSize("ftp://ftp.myftpsite.com/myfile.txt", "anonymous", "guest@", MODE_BINARY, 20, 21, true, nil);Получаем размер файла "myfile.txt" и сохраняем результат в переменной nFileSize. Пример 2-- Settings for FTPWI actions -- Параметры для FTPWI действий sFileOnServer = "ftp://ftp.myftpsite.com/myfile.exe"; sLocalFilePath = _TempFolder .. "\\myfile.exe"; sServerUser = "anonymous"; sServerPass = "guest@"; nServerMode = MODE_BINARY; nServerTimeout = 20; nServerPort = 21; bUsePassive = true; -- Set the max bytes allowed without alerting the user to 2MB (2*1024*1024): -- Устанавливаем максимальное количество байтов разрешенное без оповещения пользователя в 2MB (2*1024*1024): QuestionByteThreshold = 2097152; -- Assume download should continue -- Предполагаем, что загрузка будет продолжена bContinueDownload = true; -- Get size of file to be downloaded -- Получаем размер загружаемого файла FileSize = FTPWI.GetFileSize(sFileOnServer, sServerUser, sServerPass, nServerMode, nServerTimeout, nServerPort, bUsePassive, nil); -- Check if filesize is unknown -- Проверяем известен ли размер файла if FileSize == -1 then -- Filesize is unknown, alert user -- Размер файла неизвестен, предупреждаем пользователя choice = Dialog.Message("Alert", "Filesize is unknown. Continue Download?", MB_YESNO, MB_ICONQUESTION, MB_DEFBUTTON1); if choice == 7 then -- User chose not to continue with download -- Пользователь выбрал остановку загрузки bContinueDownload = false; end -- Check if filesize is greater than threshold -- Проверяем, не превышает ли размер файла установленного порога elseif FileSize > QuestionByteThreshold then -- Filesize is larger than threshold, alert the user -- Размер файла больше порогового значения, предупреждаем пользователя choice = Dialog.Message("Alert", "Filesize is greater than the threshold by " .. FileSize - QuestionByteThreshold .. " bytes. Continue Download?", MB_YESNO, MB_ICONQUESTION, MB_DEFBUTTON1); if choice == 7 then -- User chose not to continue with download -- Пользователь выбрал остановку загрузки bContinueDownload = false; end end -- Check if download should continue -- Проверяем, следует ли продолжать загрузку if bContinueDownload then -- Download File -- Загружаем файл FTPWI.Download(sFileOnServer, sLocalFilePath, sServerUser, sServerPass, nServerMode, nServerTimeout, nServerPort, bUsePassive, nil); else -- Don't download file, alert user that download has been terminated -- Не загружаем файл, предупреждаем пользователя что загрузка была прервана Dialog.Message("Alert", "Download aborted by user"); endПроверяем размер файла, который будет загружен, на FTP сервере. Если файл больше установленного порогового значения, запрашиваем пользователя, продолжать ли загрузку.
Смотрите также: Связанные действия
|