Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi IdFTP Dateien auflisten mit Zusatzinfos? (https://www.delphipraxis.net/153961-idftp-dateien-auflisten-mit-zusatzinfos.html)

Jamah 22. Aug 2010 19:37

IdFTP Dateien auflisten mit Zusatzinfos?
 
Moin.
Kleines Problem, gestaltet sich ungefähr so:
ich wollte eine kleinigkeit für n paar Kumpels schreiben. Die wollen Textentwürfe über einen Server austauschen. Also hab ich mir gedacht, ich bau n kleines Tool, dass dann immer bei Aufruf zum Server verbindet und von da dann einfach alle Dateien auflistet (in ein Liestview).
Ich hab mal irgendwo rausgesucht, dass man das mit IdFTP1.List(Listeview1.Items) oder so ähnlich machen kann.
Allerdings möchte ich ja die Dateigröße, denjenigen, der die Datei hochgeladen hat und das Uploaddatum.
Wie jedoch bekomme ich die Dateien so als Stringlist oder wie auch immer, dass ich die zufügen kann und dann noch Subitems.Add benutzen.
Und nun die 1.000.000€-Frage: Wie krieg ich das hin?

Danke für eure hilfe.

Luckie 22. Aug 2010 19:42

AW: IdFTP Dateien auflisten mit Zusatzinfos?
 
Hast du dir schon mal die Demos von den Indys angeguckt?

Jamah 22. Aug 2010 19:49

AW: IdFTP Dateien auflisten mit Zusatzinfos?
 
Jop aber da ist so viel mit Direcotry und so.
Ich möchte die Dateien ja nur auflisten. Nicht die Ordner...

jfheins 22. Aug 2010 19:52

AW: IdFTP Dateien auflisten mit Zusatzinfos?
 
Alles bekommst du mit
Delphi-Quellcode:
 FFtp.List (nil, '-a', True);
guckst du hier

Dateien und Ordner jkannst du dann ja nachher ausfiltern

Luckie 22. Aug 2010 19:56

AW: IdFTP Dateien auflisten mit Zusatzinfos?
 
Zitat:

Zitat von Jamah (Beitrag 1044214)
Jop aber da ist so viel mit Direcotry und so.
Ich möchte die Dateien ja nur auflisten. Nicht die Ordner...

Dann musst du dich eben mal etwas damit auseinandersetzen.

Jamah 22. Aug 2010 20:15

AW: IdFTP Dateien auflisten mit Zusatzinfos?
 
Zitat:

Zitat von Luckie (Beitrag 1044217)
Zitat:

Zitat von Jamah (Beitrag 1044214)
Jop aber da ist so viel mit Direcotry und so.
Ich möchte die Dateien ja nur auflisten. Nicht die Ordner...

Dann musst du dich eben mal etwas damit auseinandersetzen.

Sehr freundliche Antwort. Schlecht gschlafen? ;)

Luckie 22. Aug 2010 20:20

AW: IdFTP Dateien auflisten mit Zusatzinfos?
 
Nein. Ich wollte damit nur ausdrücken, dass man sich mit manchen Dingen eben mal etwas intensiver beschäftigen muss. Letztendlich brauchst du doch nur den Code herausnehmen, der die Ordner mit auflistet.

Jamah 25. Aug 2010 15:38

AW: IdFTP Dateien auflisten mit Zusatzinfos?
 
Zitat:

Zitat von jfheins (Beitrag 1044215)
Alles bekommst du mit
Delphi-Quellcode:
 FFtp.List (nil, '-a', True);
guckst du hier

Dateien und Ordner jkannst du dann ja nachher ausfiltern

Woher kommt das GetFileInfo(), was du da benutzt? Ich hab einiges dazu gefunden, ist aber meißtens eine funktion zum Auslesen des Herstellers...

jfheins 25. Aug 2010 16:16

AW: IdFTP Dateien auflisten mit Zusatzinfos?
 
Zitat:

Zitat von Jamah (Beitrag 1044916)
Woher kommt das GetFileInfo(), was du da benutzt? Ich hab einiges dazu gefunden, ist aber meißtens eine funktion zum Auslesen des Herstellers...

Das ist eine eigene Funktion, die dann auch das Icon ausliest und so. Solltest du ohne Probleme Weglassen können. (Dann halt direkt auf TIdFTP.DirectoryListing zugreifen)

Also den Code so ändern:
Delphi-Quellcode:
procedure TFtpBrowser.CreateDirectoryListing;
var
  i: Integer;
begin
    FFtp.SendCmd('TYPE A');

    FFtp.List (nil, '-a', True);

    for i := 0 to Pred (FFtp.ListResult.Count) do
      CreateItemFromFileInfo (FTP.DirectoryListing[i]);
end;

procedure TFtpBrowser.CreateItemFromFileInfo(const FileInfo: TIdFTPListItem);
var
  ListItem: TListItem;
begin
  // Mach was mit FileInfo
end;

Trotzdem hier noch der Code (bitte nicht schlagen^^)
Delphi-Quellcode:
type
 TFileInfo = record
    Directory: Boolean;
    Filename,
    Date,
    FileType: String;
    Size: Integer;
  end;

-------------------

function TFtpBrowser.GetFileInfo(Index: Integer): TFileInfo;
var
  Registry: TRegistry;
  Filename, Filedetails, TempType, TempSize: String;
begin
  Filename := FFtp.DirectoryListing[Index].FileName;
  Filedetails := FFtp.DirectoryListing[Index].Text;

  Result.Directory := Filedetails[1] = 'd';
  Result.Filename := Filename;

  if Result.Directory then
    Result.FileType := 'Ordner'
  else
  begin
    Result.FileType := ReverseString (copy (ReverseString (Filename), 1, pos ('.', ReverseString (Filename))));

    Registry := TRegistry.Create(KEY_READ);
    try
      Registry.RootKey := HKEY_CLASSES_ROOT;
      if Registry.OpenKey (Result.FileType, False) then
      begin
        TempType := Registry.ReadString('');
        Registry.CloseKey;
        if Registry.OpenKey (TempType, False) then
        begin
          TempType := Registry.ReadString('');
        end;
      end;
    finally
      Registry.Free;
    end;

    if (TempType = '') then
      Result.FileType := Trim (AnsiUpperCase (copy (Result.FileType, 2, length (Result.FileType) - 1)) + ' Datei')
    else
      Result.FileType := TempType;
  end;

  Filedetails := ReverseString(Filedetails);
  Delete (Filedetails, 1, length (Filename));

  Result.Date := ReverseString (Trim (copy (Filedetails, 1, 14)));

  try
    TempSize := Trim (copy (Filedetails, 14, 10)) + ' ';
    TempSize := Trim (copy (TempSize, 1, pos (' ', TempSize)));
    Result.Size := StrToInt (ReverseString (TempSize));
  except
    Result.Size := 0;
  end;
end;

Jamah 26. Aug 2010 13:05

AW: IdFTP Dateien auflisten mit Zusatzinfos?
 
Delphi-Quellcode:
Procedure CreateEntry(const FileInfo: TIdFTPListItem); //TIdFTPListItem wird markiert als undeklarierter
begin                                                         //Bezeichner....

end;
Hm. Ich bekomm da wieder einen Error. Warum??


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:06 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz