Всегда новое имя у загруженного на FTP файла, как? - VB

Узнай цену своей работы

Формулировка задачи:

Добрый день, господа программисты! Создал проект, функцией которого является загрузка файла на FTP сервер, т.е. FTP-client. Целью проекта является загрузка файла с постоянно изменяющимися данными (1.txt). Проблема такая:
Как Вы видите из строки:
имя файла на сервере будет 1.txt, и при последующих запусках, клиента имя файла 1.txt меняться не будет, т.е. предыдущий файл будет перезаписан. Вопрос: Как сделать чтобы при запуске FTP-клиента файл сохранялся в формате: год-месяц-дата-часов-минут-секунд.txt времени запуска? Т.е. имя файла никогда не повторялось. И как сохранить файл не в корень каталога FTP, как здесь:
а в подкаталоге, пример:
когда пишу адрес ftp.XXXX.XXX/1 или ftp.XXXX.XXX/1/ - файл не отправляется вообще. Спасибо за внимание, очень надеюсь на вашу помощь.

Решение задачи: «Всегда новое имя у загруженного на FTP файла, как?»

textual
Листинг программы
Sub FTP_FileCopy(FileLocal As String, FileRemote As String)
On Error Resume Next
Dim hConnection As Long, hOpen As Long, sOrgPath As String
'считывание настроек FTP
Call FTP_ConnectParam
If FTP_SERVER = "" Or FTP_LOGIN = "" Or FTP_PASS = "" Then Exit Sub
   lpszLocalFile = FileLocal 'локальный файл, который необходимо закачать
   lpszRemoteFile = FileRemote 'имя, под которым сохраним закачиваемый файл
      
    'Открываем соединение с интернетом
    hOpen = InternetOpen("sample program", INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)
    'Соединяемся с FTP сервером
    hConnection = InternetConnect(hOpen, FTPServer, INTERNET_DEFAULT_FTP_PORT, FTPLogin, FTPPassword, INTERNET_SERVICE_FTP, IIf(PassiveConnection, INTERNET_FLAG_PASSIVE, 0), 0)
    'Создаем буфер для запоминания оригинальной текущей директории
    sOrgPath = String(MAX_PATH, 0)
    'Получаем текущую директорию
    Call FtpGetCurrentDirectory(hConnection, sOrgPath, Len(sOrgPath))
    'Меняем текущую директорию на root/%lpszRemoteDirectory%
    Call FtpSetCurrentDirectory(hConnection, lpszRemoteDirectory)
    'Заливаем файл lpszLocalFile
    lblCopy.Visible = True
    Me.Refresh
    DoEvents
    Call FtpPutFile(hConnection, lpszLocalFile, lpszRemoteFile, FTP_TRANSFER_TYPE_UNKNOWN, 0)
    lblCopy.Visible = False
    'Восстанавливаем оригинальную (сохраненную ранее) текущую директорию
    Call FtpSetCurrentDirectory(hConnection, sOrgPath)
    'Закрываем соединение с FTP сервером
    Call InternetCloseHandle(hConnection)
    'Закрываем соединение с интернетом
    Call InternetCloseHandle(hOpen)
    'обновляем список файлов
    Call FTP_CreateFileList(lpszRemoteDirectory)
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.091 из 5
Похожие ответы