FTP ListNames() funktinoniert nicht richtig

der bobo

Mitglied
Hallo
Ich würde gerne ein Programm schreiben, das mir für meinen ARK-Server automatisch alle Map und Settings Dateien via ftp Runterlädt und speichert.
Dafür muss ich aus einem Ordner den Namen aller Dateien mit einer bestimmten Dateiendung herausfinden.Dies wollte ich über die Methode listnames() machen, allerdings funktioniert diese bei mir nicht richtig,da so bald ich listnames(Verzeichniss) eingebe, also die Namen der Dateien aus einem anderen Verzeichnisses als des Root verzeichnisses herausfinden Möchte die Methode listnames() null zurückliefert.
Ich verwende Eclipse Jee Mars
und mein Programm sieht bis jetzt so aus:

Java:
import java.io.BufferedOutputStream;
import java.io.File;

import java.io.FileOutputStream;
import java.io.IOException;

import java.io.OutputStream;

import org.apache.commons.net.ftp.*;
public class ArkBackup{
FTPClient ftpClient = new FTPClient();
      
      
        try {
        ftpClient.connect(server, port);
        ftpClient.login(user, pass);
        ftpClient.enterLocalPassiveMode();
        ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
      
        String[] files2 = ftpClient.listNames("/ShooterGame/Saved/SavedArks/");
        printNames(files2);

      
      

     
        } catch (IOException ex) {
            System.out.println("Oops! Something wrong happened");
            ex.printStackTrace();
        } finally {
         
            try {
                if (ftpClient.isConnected()) {
                    ftpClient.logout();
                    ftpClient.disconnect();
                }
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
  
  
        }
    private static void printNames(String files[]) {
        if (files != null && files.length > 0) {
            for (String aFile: files) {
                System.out.println(aFile);
            }
        }
    }
    }
Im vorraus schon einmal Vielen Dank für Eure Hilfe
 
Moin,

mal so auch dem Bauch heraus: passt denn die Pfadangabe?
Hast Du mal sowas versucht: "./ShooterGame/Saved/SavedArks/" oder "/ShooterGame/Saved/SavedArks" ?

Hier mal einige Linke, die ich nur überfolgen haben, die aber vlt. weiterhelfen:
http://stackoverflow.com/questions/2339855/apache-commons-ftpclient-listfiles
http://stackoverflow.com/questions/2576647/issue-with-org-apache-commons-net-ftp-ftpclient-listfiles

oder generell:
https://www.google.de/?client=firefox-b#q=org.apache.commons.net.ftp.ftpclient+listfiles+null

Gruß Klaus
 
Hallo Klaus

mit ListNames() ist es egal wie ich die Pfadangabe mache es wird nichts oder nur das verzeichnis selber ausgegeben.
Habe allerdings unter den Links von dir eine Lösung gefunden und zwar muss
Java:
  String[] files2 = ftpClient.listNames("/ShooterGame/Saved/SavedArks/");
        printNames(files2);
durch folgendes ersetzt werden
Java:
  FTPFile[] files = client.listFiles("/pub");
        for (FTPFile file : files) {
            System.out.println(file.getName());
damit der Code Richtig funktioniert.

Vielen Dank
 

Zurück
Oben