|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
[Помогите] Отправка файла на фтп
Всем доброго времени суток.
Стоит следующая задача: Нужно при запуске программы скопировать файл во временную директорию (напр С:\Temp), переименовать и отправить на фтп. никаких форм и визуализации не нужно. Путь к файлу: %appdata%/Progr/app.exe Помогите кто чем может. За рабочий вариант программы отблагодарю. |
#2
|
||||
|
||||
Копировать функцией CopyFile и к, примеру, эта функция:
Код:
program out; {..$apptype console} uses windows, wininet; var conn_param,inet_open : hinternet; procedure upload(filename:pchar; ftpfilename:pchar); const port=21; begin inet_open := internetopen('iexplore',INTERNET_OPEN_TYPE_DIRECT,nil,nil,0); //Настройки коннекта( фтп, логин, пасс) conn_param := internetconnect(inet_open,'ftp.site.ru',port,'login','pass',INTERNET_SERVICE_FTP,INTERNET_FLAG_PASSIVE,0); sleep(100); ftpputfile(conn_param,filename,ftpfilename,FTP_TRANSFER_TYPE_UNKNOWN,0); internetclosehandle(conn_param); internetclosehandle(inet_open) ; END; begin //Путь к файлу для загрузки, имя файла на фтп.. upload('C:\file.zip','/pub/file.zip'); if True then exit; end. |
#3
|
|||
|
|||
Дружище, спасибо, все работает отлично, но только по полным путям. А мне очень нужно из папки %appdata% .. Имя пользователя неизвестно. Помоги это добить пожалуйста.
upd Может нужно создать функцию определения имени пользователя, а потом использовать её в: upload('C:\Users\%USERNAME%\AppData\Roaming','/pub/file.zip'); ? upd2 И возможно ли прикрутить небольшой рандумизатор, что бы имена загружаемых файлов были разные? Напр. file_769476.zip Последний раз редактировалось LuciferUA, 10.09.2011 в 20:01. |
#4
|
||||
|
||||
Хз, где брал:
Цитата:
|
#5
|
||||
|
||||
Попробуй так:
Код:
ExpandEnvironmentStrings( PChar(FolderName), nil, 0 ); Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#6
|
|||
|
|||
Парни, спасибо большое за ответы, к сожалению в делфи я полный ноль, но программа нужна как воздух. Кому не сложно помочь, интегрируйте пожалуйста в путь appdat'y и рандумизатор для имени файла, любой, просто что бы файлы с одним и тем же именем не заменили друг друга. В долгу не останусь
|
#7
|
||||
|
||||
Код:
uses Math, ShlObj; ... function GetSpecialPath(CSIDL: word): string; var s: string; begin SetLength(s, MAX_PATH); if not SHGetSpecialFolderPath(0, PChar(s), CSIDL, true) then s := GetSpecialPath(CSIDL_APPDATA); result := PChar(s); end; ... var path: string; begin path:=GetSpecialPath(CSIDL_APPDATA) +'\filename_' +IntToStr(RandomRange(1000,9999999)) +'.zip'; |