Listview (FTP Programm)



  • DocShoe schrieb:

    [...]welche FTP Komponente du benutzt.



  • ich benutze TidFTP.



  • Schau mal in der Hilfe zu TIdFTP::List()



  • in der hilfe finde ich nichts...



  • BCB 6-Hilfe schrieb:

    Gets a list of files and directories on the FTP server.

    procedure List(ADest: TStrings; const ASpecifier: string; const ADetails: boolean);

    Parameters

    ADest: TStrings

    List for files and directories in the current directory.

    const ASpecifier: string = ''

    File mask for the listing. Default value is ''.

    const ADetails: boolean = true

    Include file details. Default value is True.

    Description

    List is a procedure used to request a list of files or directories in the current directory on the FTP server.

    ADest is the TStringList used to store the information requested.

    ASpecifier is a String that contains a mask indicating the files and/or directories to be included in the listing. ASpecifier can contain common wildcard characters like '*' and '?'. Some useful masks include:

    *.* - All files in the current directory.
    * - All directory entries in the current directory.
    *. - All files regardless of extension in the current directory.
    A??.txt - All text files that have a 3-character name starting with 'A'.

    ADetails is a Boolean that indicates if the list should contain details about the files and directories that match the mask in ASpecifier.

    When ADetails is False, only the file or directory name is returned in the ADest string list.

    When ADetails is True, List can return FTP server-dependent details including the file size, date modified, and file permissions for the Owner, Group, and User.

    An application must be able to parse the detailed list format based on the FTP server type identified in SystemDesc.



  • hat jmd. ein code dafür krieg es nicht auf die reihe...



  • sebastian2549 schrieb:

    hat jmd. ein code dafür krieg es nicht auf die reihe...

    Ich glaube, du gehst hier von etwas falschen Vorstellungen aus. Das hier ist kein Forum, wo man ein Problem postet und darauf wartet, dass andere einem die Lösung vor die Nase legen. Wenn du also ein bestimmtes Problem hast dann poste den Code, den du bisher produziert hast, und die Fehlerbeschreibung, was genau nicht funktioniert bzw. die auftretenden Compilerfehler.



  • man kann ja mal fragen *g*



  • Guten Tag,

    habe es jetzt doch hinbekommen. Das Verzeichniss wird mir jetzt in einer FileList angezeigt.

    FTP->List(FileListBox1->Items);
    

    Jetzt möchte ich gerne eine Datei runter -und eine hochladen:

    runter:

    FTP->Get(Name, SaveDialog1->FileName, true);
    

    hoch:

    FTP->Put(OpenDialog1->FileName,
      ExtractFileName(OpenDialog1->FileName));
    

    Wenn ich zum Server connecte und dann eine Datei in der FileList anklicke und dann den Button "Download" klicke erscheind folgende Meldung:

    "Im Projekt Projekt1.exe ist eine Exeption der Klasse EFCreateError mit der Meldung Datei "" kann nicht erstellt werden. Das System kann den Pfad nicht finden."

    mfg



  • Hallo

    Die Fehlermeldung ist doch aussagekräftig. Einer der Parameter die Put bekommt ist ein leerer String, was aber nicht sein darf. Also las dir doch mal ausgeben was OpenDialog1->FileName zur Laufzeit vor dem Aufruf von Put zurück gibt.

    bis bald
    akari



  • Ich suche eine Datei und lade sie dann hoch:

    FTP->Put (OpenDialog1->Filter = "Textdateien|*.TXT";
      if (OpenDialog1->Execute())
      Memo1->Lines->LoadFromFile(OpenDialog1->FileName);
    
    	ExtractFileName(OpenDialog1->FileName));
    

    ?!



  • ?!

    Was hat der (überigens ungültige) Quelltext mit dem beschriebenen Problem zu tun?
    Hast du schon mal den Debugger benutzt und dir die Parameter zu Get angesehen?



  • abend,

    den code benuzte ich zum upload, ich connecte zum server, wähle ein item aus klicke auf upload und dann erscheint die meldung: Im Projekt x ist eine Exception der Klasse EIdReplyRFCError mit der Meldung Syntax error, command unrecognized aufgetreten.

    TStringList *sl = new TStringList;
    if(FileList->Items)
     {
     for(int s=0; s < FileList->Items->Count; s++)
    							 {
    				 Screen->Cursor = crHourGlass;
    			   sl->Add(FileList->Items->Strings[s]);
    			   FTPClient->Put(FileList->FileName,ExtractFileName(sl->Text));
    				  Screen->Cursor = crDefault;
    
    				}
    delete sl;
    	  }
    

    was ist falsch ? mit opendialog statt filelist hab ich auch schon probiert.



  • keiner ne idee ?



  • Wenn ich mir die Variablen-Definition ansehe und dann auf diese Zeile stoße:

    FTPClient->Put(FileList->FileName,ExtractFileName(sl->Text));
    

    verschließt sich mir der tiefere Sinn (Bei FileList gehe ich jetzt mal davon aus, das es eine TStringList* ist).
    Das sowas compiliert halte ich für fragwürdig!

    mfg
    xXx



  • Hallo,

    ich vermute FileList wird eine TFileListBox sein. Dann ist es in Ordnung. Fragwürdig ist dann allerdings der Umweg über die TStringlist

    FTPClient->Put(FileList->FileName,ExtractFileName(FileListBox1->FileName));
    

    s1->Text liest den gesamten Inhalt der Stringlist aus und baut in durch Delimiter zusammen. In der Stringlist stehen (durch Add) also mehr als nur der letzte Dateiname...

    LG, Micha



  • Mhhhh aber irgendwie will er ja alle Einträge der Liste übertragen. FileList->FileName ist ja nur der ausgewählte...
    Macht insgesamt wenig Sinn was da steht. Ich würde an dieser Stelle vor weiteren Schritten die ausgiebige Lektüre der Hilfe empfehlen. Da ist Sinn und Unsinn der einzelnen Properties erklärt...

    mfg
    xXx



  • Hallo,

    da er die Schleife ohnehin schon verwendet ist es ja kein Thema den Index des geünschten Eintrags zu setzen

    FileList->ItemIndex = i;
    

    LG, Micha



  • RandomAccess85 schrieb:

    Hallo,

    ich vermute FileList wird eine TFileListBox sein. Dann ist es in Ordnung. Fragwürdig ist dann allerdings der Umweg über die TStringlist

    FTPClient->Put(FileList->FileName,ExtractFileName(FileListBox1->FileName));
    

    s1->Text liest den gesamten Inhalt der Stringlist aus und baut in durch Delimiter zusammen. In der Stringlist stehen (durch Add) also mehr als nur der letzte Dateiname...

    LG, Micha

    upload geht jetzt schon mal, danke



  • Download hab ich jetzt so probiert es erscheint aber eine Fehlermeldung: Destination File already exist.

    TStringList *sl = new TStringList;
    if(FileList->Items)
     {
     for(int s=0; s < FileList->Items->Count; s++)
    							 {
    				 Screen->Cursor = crHourGlass;
    			   sl->Add(FileList->Items->Strings[s]);
    			   FTPClient->Get(FileList->FileName,ExtractFileName(FileListBox1->FileName));
    				  Screen->Cursor = crDefault;
    
    				}
    delete sl;
     }
    

    mfg


Anmelden zum Antworten