Entwickler-Ecke

Internet / Netzwerk - nach dateien auf ftp suchen!


nimmersattXD - Mo 22.06.09 14:37
Titel: nach dateien auf ftp suchen!
hallo!

ich habe ein programm geschrieben, was nach jeglichen dateien auf dem rechner suchen kann, mein chef moechte nun das ich das umbaue sodass es auf einem ftp suchen kann! durch die indy komponente IdFtp kann ich mich jetzt schon mit einem server verbinden. da ich aber leider anfaenger bin weiss ich nicht wie ich meine suchroutine so umschreiben kann, dass auf einem ftp gesucht werden kann! waere nett wenn mir da jm helfen kann.

hier mein quelltext:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
procedure GetAllFilesEM(Path, ExtMask: String; List: TStringDictionary;
  SubFolder: Boolean);
var
  Attrib, k: Integer;
  Search: TSearchRec;
begin
  Attrib := faArchive + faReadOnly + faHidden;


  if Path[Length(Path)] <> '\' then Path := Path + '\';


  with TStringList.Create do
  try
    CommaText := ExtMask;

 
    for k := 0 to Count - 1 do
    if FindFirst(Path + '*.' + Strings[k], Attrib, Search) = 0 then  
      repeat
        List.Add((AnsiUpperCase(Path + Search.Name)),nil);
      until FindNext(Search) <> 0;


    FindClose(Search);  
  finally Free end;


  if SubFolder then  
  begin
    if FindFirst(Path + '*.*', faDirectory, Search) = 0 then  
    begin
      repeat  
        if ((Search.Attr and faDirectory) = faDirectory) and
          (Search.Name[1] <> '.'then
          GetAllFilesEM(Path + Search.Name, ExtMask, List, SubFolder);
      until FindNext(Search) <> 0;


      FindClose(Search);  
    end;
  end;
end;


nimmersattXD - Di 23.06.09 22:18

kann mir denn wirklich keiner helfen :(


jaenicke - Di 23.06.09 22:33

Du musst dir mit IdFTP.List die Liste der Dateien und Verzeichnisse vom Server holen. Dann kannst du mit IdFTP.DirectoryListing diese Liste durchgehen.
Wenn es sich um ein Verzeichnis handelt, dann muss sich die Funktion wieder selbst aufrufen (wenn Unterverzeichnisse erwünscht sind), bei Dateien nur diese der Liste hinzugefügt werden.

Im Grunde also genauso wie auch bei der lokalen Dateisuche. Kann es sein, dass du die nicht so richtig verstanden hast?


nimmersattXD - Fr 26.06.09 12:18

deswegen frag ich ja nach hilfe! ich bin ein anfaenger, un soll das halt auf arbeit nebenbei machen, soweit ich das hinbekomme ... un die suchroutine hab ich hier aus dem forum und halt nur geaendert dass es mit hashlists funktioniert, aber richtig 100% verstanden hab ich sie nur teilweise ... ich wollte das idftp.list in der routine aufrufen, aber da es ja eine procedure ist komm ich da ja nich ran ... ich nur noch heute zeit dafuer, weil ich morgen wieder nach deutschland zurueckgehe ... wenn mir jm schnell ein bissel quelltext als beispiel schrieben koennte waer das echt toll, wenn nicht ist es aber auch nicht schlimm!!

trotzdem danke :)