FtpClient.rename....

feldmah

Mitglied
Hallo,

ich benutze den FtpClient aus dem apache-Paket und bekomme den rename nicht hin. Der returnwert ist false. Es wird keine Exception geworfen und die Datei ist nicht umbenannt.
Das Statement ist sehr simpel:

rs = ftpClient.rename(sFileName, sFileName + ".old");

Wie kann ich herausfinden welches Problem der rename hat?
Viele Grüße
 

feldmah

Mitglied
mit dem Debugger (Eclipse) bin ich da schon durchgegangen. Witzigerweise wird die Datei umbenannt, wenn ich mir das komplette Statement unter "watch" anzeigen lasse. Das Statement wird ja dann auch ausgeführt....Insofern muss das Verzeichnis auch richtig sein...
 

feldmah

Mitglied
hier der Sourcecode: die Methode holt sich mehrere Dateien und gibt die Zeilen in einem Vector zurück anschließend wird der Dateiname geändert, damit die Datei nicht erneut verarbeitet wird.






public Vector getFileAndRename(String sPfad, String sSuchBegriff) throws Exception {

BufferedReader br = null;
BufferedReader brFile = null;
Vector zeilen = new Vector();
String line = new String();
this.sSuchBegriff = sSuchBegriff;
try {
try {
// inFileName = ftpClient.nameList(sPfad);
inFileName3 = ftpClient.listFiles(sPfad, ftpFF);


} catch (FileNotFoundException ex2) {
throw ex2;
}
if (inFileName3 == null || inFileName3.length == 0) { // sind Dateien vorhanden?
throw new FileNotFoundException();
}

// for (FTPFile ftpFile : inFileName3) {
for (int i = 0; i < inFileName3.length; i++) {
System.out.println("Datei:" + inFileName3[0].getName());
// FTPFile ftpFile = inFileName3; // hier paasiert der rename in Old
InputStream inFile = null;
inFile = ftpClient.retrieveFileStream(sPfad + inFileName3.getName()); // Datei-Name

brFile = new BufferedReader(new InputStreamReader(inFile));
while ((line = brFile.readLine()) != null) {
zeilen.add(line); // Datei-Zeilen im Vector speichern
}

String sFileName = sPfad + inFileName3.getName();
String sFileNameBak = sFileName.replace("peem/", "peem/bak/");
boolean rs, rs2;
try {
rs = ftpClient.rename(sFileName, sFileName + ".old"); } catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// ftpClient.rename(ftpFile.getName(),ftpFile.getName() + ".old");
}
 

Ähnliche Java Themen

Neue Themen


Oben