Lass IdFTP die Arbeit machen
Hier mal ein Ausschnitt aus meiner FTPBrowser-
Unit:
Delphi-Quellcode:
procedure TFtpBrowser.CreateDirectoryListing;
var
i: Integer;
begin
Working := True;
if FFtp.Connected then
begin
FFtp.SendCmd('TYPE A');
FFtp.List (nil, '-a', True);
for i := 0 to Pred (FFtp.ListResult.Count) do
CreateItemFromFileInfo (GetFileInfo(i));
end;
Working := False;
end;
procedure TFtpBrowser.CreateItemFromFileInfo(const FileInfo: TFileInfo);
var
ListItem: TListItem;
begin
if FileInfo.Filename <> '.' then
begin
ListItem := FFiles.Items.Add;
if FileInfo.FileType = 'Ordner' then
if Fileinfo.Filename <> '..' then
ListItem.ImageIndex := 0
else
ListItem.ImageIndex := 1
else
ListItem.ImageIndex := 2;
ListItem.Caption := FileInfo.Filename;
if FileInfo.Size > 1000000 then
ListItem.SubItems.Add(IntToStr (FileInfo.Size DIV 1000000) + ' MB')
else if FileInfo.Size > 1000 then
ListItem.SubItems.Add(IntToStr (FileInfo.Size DIV 1000) + ' KB')
else if FileInfo.Size > 0 then
ListItem.SubItems.Add(IntToStr (FileInfo.Size) + ' Byte')
else
ListItem.SubItems.Add('n/a');
ListItem.SubItems.Add(FileInfo.FileType);
ListItem.SubItems.Add(FileInfo.Date);
end;
end;
Da hab ich mal paar Fragen:
-Wo ist TListItem definiert?
-Wo ist der Filetyp definiert zB. "Ordner"?
Nun will ich das Home Verzeichnis des Servers erkennen. Ich gehe dabei davon aus das, wenn ich mich im Internet an einem
FTP Server anmelde, meine Zugangsdaten mit meinem Home-Verzeichnis verknüpft sind, ich also nur auf dieses Verzeichnis Zugriff habe, in welchem dann alle Dateien und Ordner zu finden sind, zu denen ich die Zugriffsberechtigung besitze.
Nun will ich mich vom
Indy Client aus mit diesem
FTP-Server verbinden. Dazu muss ich ja erst mal wissen, welches mein Home Verzeichnis ist. Wie ist das normalerweise im Internet gelöst? Erhalte ich da mit dem Zugang den Namen meines Home Verzeichnisses oder ist dessen Name völlig egal. Wenn völlig egal, dann muss allerdings mein
FTP Client wissen, wie er dieses Home Verzeichnis finden kann. Kann mir hier jemand sagen, mit welcher Methode ich das Home Verzeichnis erhalte?
Sorry, ich kann mein Anliegen nicht deutlicher beschreiben. Wo finde ich hierzu und zu
FTP und
Indy eine für den Anfänger assagekräftige Dokumentation?
Ich habe nur die Indys, wie sie mit Turbo Delphi mitgeliefert wurden. Leider sind da keine aussagekräftigen Demos dabei.
Ich will mein
FTP Homeverzeichnis als Root setzen und dann mir alle Dateien auf dem
FTP Sever anzeigen lassen. Später will ich Dateien auf den Server hochladen und vom Server runterladen können, weshalb ich die Verzeichnisstruktur sehen möchte. Am liebsten mit ShellTreeView und ShellListView. Aber ich muss ja dem ShellTreeView erst mal das Home Verzeichnis meines
FTP Servers übergeben. Wie mache ich das? Wo gibt es da Beispiele?
Damit der Topf nicht explodiert, lässt man es ab und zu mal zischen.