![]() |
TIdFTP Get - Probleme mit variablen Dateinamen
aloha
hab ein kleines problem bei nem ftp download... ich möchte gerne eine datei von einem ftp server downloaden, habe aber nicht denn vollständigen namen! wie muss ich dies im get befehl darstellen??? hat das vielleicht auch schon mal jemand probiert??? folgendes geht nicht
Delphi-Quellcode:
FTP.Get('unvollständiger_datei_name*', 'C:\Temp\'+ FormatDateTime('yyyymmdd', Date) + '.txt', True, False);
|
Re: TIdFTP Get - Probleme mit variablen Dateinamen
Das funktioniert genau so wie bei einer lokalen Datei auch. In Word kannst du auch nicht bei Datei öffnen "*.*" angeben. Das ist auch logich, denn es könnte mehrere Datei geben welche der Maske entsprechen. Dir wird nichts anderes übrig bleiben als den gesammten inhalt aufzulisten und die Datei herauszusuchen aus den Ergebnissen.
|
Re: TIdFTP Get - Probleme mit variablen Dateinamen
kann ich die files vom ftp server auch über findfirst und findnext auslesen???
bzw. kennt jemand ne bessere möglichkeit? |
Re: TIdFTP Get - Probleme mit variablen Dateinamen
|
Re: TIdFTP Get - Probleme mit variablen Dateinamen
hey marabu
danke erst mal für die code beispiele... leider hab ich en kleines problem... ich kann keine variable vom typ TIdFtpListItems erstellen :( brauch ich hierfür ne bestimmte uses??? |
Re: TIdFTP Get - Probleme mit variablen Dateinamen
ok ich hab mir inzwischen so weitergeholfen:
Delphi-Quellcode:
jetzt hab ich nur noch das problem, das ich zusätzlich zu dem dateinamen viel unnützen schrott mit angezeigt bekommen...
procedure TMain_Form.btn_shwfilesClick(Sender: TObject);
var blEntrys : Boolean; i : Integer; s : String; slFiles : TStringList; begin blEntrys := True; If edt_directory.Text = '' Then Begin MessageDlg('Some Entrys are Missing!', mtWarning, [mbOk], 0); blEntrys := False; End; If blEntrys = True Then Begin FTP.ChangeDir(edt_directory.Text); End; slFiles := TStringList.Create; FTP.List(slFiles, '*', True); For i := 0 To slFiles.Count - 1 Do Begin lstbox_files.Items.Add(slFiles.Strings[i]); End; end; z.B. "drw-rw-rw- 1 user group 62119 Sep 11 23:00 Dateiname.txt" |
Re: TIdFTP Get - Probleme mit variablen Dateinamen
du kannst dir den dateinamen doch einfach mit Copy() extrahieren. schließlich steht er am ende der zeile. ergo gehst du (mit Pos() ) soweit zurück, bis du zum datum kommst und kopierst dir dann den dateinamen raus.
aeno |
Re: TIdFTP Get - Probleme mit variablen Dateinamen
jupp genau auf die idee bin ich gerade auch gekommen und programmier sie mir schon...
ich würde nur gern des bsp. vom marabu nehmen weil des wesentlich einfach ist... aber so wie er das gemacht hat wills bei mir net funken :-/ |
Re: TIdFTP Get - Probleme mit variablen Dateinamen
Zitat:
|
Re: TIdFTP Get - Probleme mit variablen Dateinamen
so hier jetzt mal mein quellcode über denn ich die Dateinamen herausfinde...
Delphi-Quellcode:
hmm ich weiß nicht welche indys ich verwende... wie find ich das denn raus?
//******************************************************************************
// Show Files from FTP Directory * //****************************************************************************** procedure TMain_Form.btn_shwfilesClick(Sender: TObject); var blEntrys : Boolean; i : Integer; sFileName : String; slFiles : TStringList; begin blEntrys := True; If edt_directory.Text = '' Then Begin MessageDlg('Some Entrys are Missing!', mtWarning, [mbOk], 0); blEntrys := False; End; If blEntrys = True Then Begin FTP.ChangeDir(edt_directory.Text); End; slFiles := TStringList.Create; FTP.List(slFiles, '*', True); For i := 0 To slFiles.Count - 1 Do Begin sFileName := fnConvertFileNameFTP(slFiles.Strings[i]); mem_files.Lines.Add(sFileName); End; end; //****************************************************************************** // Convert File Name * //****************************************************************************** function TMain_Form.fnConvertFileNameFTP(FTPListLine : String) : String; var i, iLen, iPos : Integer; begin iLen := Length(FTPListLine); For i := iLen - 1 DownTo 0 Do Begin If FTPListLine[i] = #32 Then Begin iPos := i + 1; Break; End; End; fnConvertFileNameFTP := Copy(FTPListLine, iPos, ((iLen - iPos) + 1)); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz