我使用這個函數來得到FTP連接的文件,德爾福ftpgetfile
function GetFileFromFTP(server, username, password, localfile, remotefile: string; port: word = 21): boolean;
var
hopen, hconnect: HINTERNET;
good:boolean;
begin
hopen := InternetOpen('myagent', INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0);
hconnect := InternetConnect(hopen, pchar(server), port, pchar(username), pchar(password), INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0);
good := FtpGetFile(hconnect, pchar(remotefile), pchar(localfile), false, 0, FTP_TRANSFER_TYPE_UNKNOWN or INTERNET_FLAG_DONT_CACHE, 0);
InternetCloseHandle(hconnect);
Result := good;
end;
問題是,當我使用的服務器字符串是這樣的:
var server:string;
server := 'ftp://192.168.1.1/XDIRECTORY/'; //IT CANT GET THE FILE
server := 'localhost'; //GETS THE FILE
procedure TForm1.btn1Click(Sender: TObject);
begin
if GetFileFromFTP(server, '', '', 'upx2.exe', 'upx.exe') then
begin
Caption := 'Install succesfull';
end
else
begin
Caption := 'Install NOT succesfull';
end;
我不明白爲什麼ftp服務器不能獲取文件,如果文件在文件夾中,或者服務器ip地址將被使用。
它只會如果我將服務器設置爲localhost
我得到了它現在的工作,謝謝 – XXXXXXXXXXXXXX