tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
8
ZUGRIFFE
662
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von BabyMitSchnully
    BabyMitSchnully BabyMitSchnully ist offline Mitglied Gold
    Registriert seit
    Sep 2003
    Ort
    Rheine
    Beiträge
    139
    Hi Leute,

    ich habe das Gefühl, dass ich gerade absolut blind vom Programmieren geworden bin.

    Ich habe einen sehr abgespeckten FTP Client geschrieben. Dieser soll nichts anderes machen, als Verzeichnisse und Dateien vom FTP Server über FTP auslesen.

    Dazu habe ich eine Socketverbindung zum FTP Server aufgebaut.
    Nachdem ich mich in den Passiv Modus "PASV" begeben habe, rufe ich die Dateiliste für das aktuelle Verzeichnis auf mit "NLST".
    Anschließend lese ich wie im folgenden Code zu sehen die Liste aus. Das funktioniert so weit.

    Doch wie kann ich jetzt prüfen, ob das was in meinem StringBuffer liegt eine Datei oder ein Verzeichnis ist? Ich kann es nicht in ein "File" verwandeln, wenn ich z.B. Den Umweg über die URL Klasse nehme.

    Code :
    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
    
      public void listenToServer() {
        //Listeninhalt
        StringBuffer sb = new StringBuffer();
     
        try {
          int amount = 1;
          while (amount > 0) {
            amount = this.in.read();
            //Steuercodes umwandeln in CHAR und dem Stringbuffer anfügen.
            sb.append((char)amount);
          }
        }
        catch (IOException ioe) {
          System.out.println(ioe);
        }
        this.cleanDataConnection();
        
        System.out.println(sb.toString());
        
        if (this.ftpClient.isListCommand()){
          //Die Liste teilen, damit man weiter arbeiten kann.
          String test[] = sb.toString().split("\n");
          int i = test.length;
          
          for (int n = 2; n < i; n++) {
            File file = null;
            //Hier muss geprüft werden, ob es eine Datei oder ein Verzeichniss ist.
            //System.out.println(test[n] + " : " + file.isDirectory());
          }
        }
     
      }

    Nun. Was kann ich tun um das ganze hin zu bekomme?

    Gruß
    Chris
     
    Sag niemals nie

  2. #2
    SE Tutorials.de Gastzugang
    Erstens : [java][/java] Code-Tags verwenden ... die normalen [code][/code] Tags sind nicht so schön und haben auch kein Syntaxhighlightning. Außerdem bleibt dann die original-Formatierung *wenn du wie in den Konventionen beschrieben mit TAB arbeitest* erhalten.
    Zweitens : wenn ich mich recht entsinne ist das Command "LIST" und nicht "NLST" ... kommt drauf an welchen FTP-Server du verwendest was
    Drittens : eine sinnvolle Info wäre damit wir dementsprechend mal nachgucken können. Es nützt nichts wenn wir dich jetzt mit haufen nicht-RFC-Commands zubomben die für sämtliche andere Server gehen aber nicht für deinen ...
     

  3. #3
    Avatar von BabyMitSchnully
    BabyMitSchnully BabyMitSchnully ist offline Mitglied Gold
    Registriert seit
    Sep 2003
    Ort
    Rheine
    Beiträge
    139
    Hi.

    Zu 1. Ich nutzte nur die Vorlage
    Zu 2 es ist das Command List nimmt der Server leider nicht. Warum auch immer
    Zu 3. Da ich versuche JAVA gerecht zu werden, nutze ich lediglich die RAW Commands. Dann funktioniert es hoffentlich überall.

    Ich hoffe, dass macht das deutlicher
    Gruß
    Chris
     
    Sag niemals nie

  4. #4
    Technoblade Technoblade ist offline Mitglied Gold
    Registriert seit
    Feb 2009
    Beiträge
    193
    Es könnte auch weiterhelfen wenn du mal den Namen deines Servers mit Version postest. Evtl. kennt jemand anderes ja auch noch die genauen Spezifikationen zu deinem Server.
     

  5. #5
    SE Tutorials.de Gastzugang
    Wie gesagt ... ob das Command nun wirklich "LIST" oder "NLST" heißt weis ich nich genau ... bin aber der Meinung das bei FileZilla Server und auch in verbindung mit IE als Client so gesehen zu haben ... kann mich aber auch irren da es verdammt lange her ist.
    Das du erstmal nur dierekt RAW arbeitest habe ich doch garnicht bemängelt. Ich weis zwar das die Apache-Commons auch Klassen für FTP haben ... aber da ich selber nie damit gearbeitet habe müssten hier mal unsere Profis ran.
     

  6. #6
    Avatar von BabyMitSchnully
    BabyMitSchnully BabyMitSchnully ist offline Mitglied Gold
    Registriert seit
    Sep 2003
    Ort
    Rheine
    Beiträge
    139
    Hi. Wollte auch nicht unhöflich wirken. Es ist nur ziemlich verzwickt. Ich Teste mit dem aktuellen FileZilla Server. Letztlich soll es aber mit jedem Server kompatible sein.

    Gruß
    Chris
     
    Sag niemals nie

  7. #7
    SE Tutorials.de Gastzugang
    Also laut offizieller FileZilla-Page ist das Command definitiv LIST und nicht NLST ... vielleicht löst das deine Probleme.
     

  8. #8
    Avatar von BabyMitSchnully
    BabyMitSchnully BabyMitSchnully ist offline Mitglied Gold
    Registriert seit
    Sep 2003
    Ort
    Rheine
    Beiträge
    139
    Es hat geklappt. Ich danke euch. Der Befehl LIST beinhaltet die Information, welche ich brauche.
     
    Sag niemals nie

  9. #9
    SE Tutorials.de Gastzugang
    Darf ich mich jetzt dazu noch äußern das ich das bereits seit 2 Posts versucht habe dir klar zumachen oder muss ich mir das jetzt klemmen weils sonst echt zu peinlich wird ? *spasseshalber kann man ruhig mal so eine Frage stellen =)*
     

Ähnliche Themen

  1. Antworten: 4
    Letzter Beitrag: 06.05.09, 10:47
  2. Feststellen ob Datei oder Verzeichnis
    Von inu im Forum C/C++
    Antworten: 5
    Letzter Beitrag: 01.11.07, 09:04
  3. Datei oder Verzeichnis?!
    Von Laxans im Forum PHP
    Antworten: 1
    Letzter Beitrag: 12.10.04, 14:34
  4. Antworten: 2
    Letzter Beitrag: 01.07.04, 13:02
  5. Antworten: 2
    Letzter Beitrag: 01.02.04, 22:11

Stichworte