Kod: Tümünü seç
function FTPDosyaAl( IdFTP : TIdFTP; SrcDosya, DesDosya:TFileName; Ftp, RemoteDir, Login, Pass : String ):Boolean;
begin // Uses IdFTP, IdFTPCommon
Result := False;
IdFtp.Host := Ftp;
IdFtp.Username := Login;
IdFtp.Password := Pass;
IdFtp.Passive := True;
IdFtp.Connect;
If IdFtp.Connected then
begin
frmguncelle.Memo1.Lines.Add('Sunucuyu başarıyla bağlanıldı.');
IdFtp.ChangeDir(RemoteDir);
xDosyaUzunluk := IdFtp.Size( SrcDosya );
Try
//IdFtp.TransferType := ftBinary; // Uses IdFTPCommon
IdFtp.Get(SrcDosya, DesDosya, False);
Finally
Result := True;
end;
IdFtp.Quit;
end;
end;
procedure Tfrmguncelle.IdFTP1Work(ASender: TObject; AWorkMode: TWorkMode;
AWorkCount: Int64);
begin
ProgressBar1.Position := AWorkCount;
Application.ProcessMessages;
end;
procedure Tfrmguncelle.IdFTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
AWorkCountMax: Int64);
begin
ProgressBar1.Min := 0;
ProgressBar1.Max := xDosyaUzunluk;
ProgressBar1.Position := 0;
ProgressBar1.Visible := True;
end;
procedure Tfrmguncelle.IdFTP1WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
begin
ProgressBar1.Position := 0;
ProgressBar1.Visible := False;
end;
procedure Tfrmguncelle.SpeedButton1Click(Sender: TObject);
Var
FTPAdres,
KaynakDizin,
Name,
Pass,
KaynakDosya,
HedefDosya : String;
onay:integer;
begin
FTPAdres := '*********.net';
KaynakDizin := '/www/update';
Name := '*******;
Pass := '******';
KaynakDosya := 'uygulamam.exe';
HedefDosya := ExtractFilePath(Application.Exename) + KaynakDosya;
If FTPDosyaAl( IdFtp1, KaynakDosya, HedefDosya, FTPAdres, KaynakDizin, Name, Pass ) then
begin
Memo1.Lines.Add('Güncelleme işlemi başarıyla tamamlandı.'+HedefDosya);
Memo1.Lines.Add('Program başlatılıyor....'+HedefDosya);
Sleep(3000);
ShellExecute(0, 'open', PChar(getcurrentdir+'\uygulamam.exe'), nil, nil, SW_SHOW);
frmguncelle.Close;
end
else Memo1.Lines.Add('Güncelleme işleminde hata oluştu.'+KaynakDosya);
If FileExists(HedefDosya) then
begin
Memo1.Lines.Add('Kaynak dosya bulundu.');
DeleteFile(HedefDosya);
Memo1.Lines.Add('Kaynak dosya silindi.');
end;
end;
procedure Tfrmguncelle.IdFTP1Status(ASender: TObject; const AStatus: TIdStatus;
const AStatusText: string);
begin
StatusBar1.SimpleText := AStatusText;
end;
end.