重命名ftp文件夹Java中的文件时出错

重命名ftp文件夹Java中的文件时出错,java,apache,file,ftp,apache-commons-net,Java,Apache,File,Ftp,Apache Commons Net,下面是我读取文件并在以后重命名的代码。Im使用的是apache commons.net 3.0.1 client.connect(localhost); boolean login = client.login("username", "password"); if(login){ System.out.println("login successful"); boolean chdir = client.changeWorkingDirectory("/home/folder1

下面是我读取文件并在以后重命名的代码。Im使用的是apache commons.net 3.0.1

client.connect(localhost);
boolean login = client.login("username", "password");
if(login){
    System.out.println("login successful");
    boolean chdir = client.changeWorkingDirectory("/home/folder1/child/");
    String url = client.printWorkingDirectory();   // EDIT
    FTPFile[] result = client.listFiles(url, filter);
    if (result != null && result.length > 0) {
        for (FTPFile aFile : result) {
            try{
                String filename = aFile.getName();
                InputStream is= client.retrieveFileStream(filename);
                br = new BufferedReader(new InputStreamReader(is));
                    while((line = br.readLine()) != null){
                        System.out.println("the line is"+line);
                     }
                }
                finally{
                    if(br!=null){
                        try{
                           br.close();
                           String oldFilename =url + "/" +aFile.getName();
                           String newFilename = "PRO"+aFile.getName();
                           boolean rename = client.rename(oldFilename, newFilename);
                            if(rename){
                                    System.out.println("renamed");
                            }   
                           else{
                                    System.out.println("Error in renaming");
                                }

                          }
文件无法重命名,程序将打印

重命名文件时出错(cz boolean rename=false)

我举出了不同的例子。但所有这些似乎都显示出同样的问题。 该文件在过滤和读取后被拾取,没有任何问题

如果有人能指出我做错了什么,那将非常有帮助

这里,
url
stringurl=client.printWorkingDirectory()

我尝试了相对路径和绝对路径。并且只为
旧文件名
提供完整路径,只为
新文件名
提供文件名。两者都不起作用

编辑

更改目录之前,url将是根目录的
/

更改目录后,url将为
/home/folder1/child/
。这是文件存在的位置。

InputStream retrieveFileStream(字符串远程)
:此方法返回一个
InputStream
,可用于从远程文件读取字节。这种方法使我们能够更好地控制如何读写数据。但使用此方法时有两个要点:

之后必须调用方法
completePendingCommand()
,以完成文件传输并检查其返回值,以验证下载是否确实成功完成

boolean success = ftpclient.completePendingCommand();
if (success){
        System.out.println("File #2 has been downloaded successfully.");
 }
我们必须显式地关闭InputStream

is.close()//is=输入流


您有什么例外吗?如果是,则添加stacktrace。@Jens似乎没有例外。重命名文件时出现
错误(cz boolean rename=false)。
正在您的代码中打印?@Jens It prints
“重命名时出现
错误”是假设。重命名是否独立工作(如果不先下载文件)?非常有用