Всегда новое имя у загруженного на 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