如何将 FTP 服务器中的 CSV 文件从一个文件夹移动到另一个文件夹?

How to move CSV file in FTP server one folder to another?

当我尝试将文件从 fileDirectory1 移动到 fileDirectory2 时.. 有什么方法可以将该文件从一个路径移动或复制到另一个 FTP server.Please 任何人都可以帮助我。

这是我的示例代码:

                      String existingfile = file.getFilename();
                        String newfile =file.getFilename();
                        String fileDirectory1 = clients.getFtpFolder() + "/" + "unprocessed" + "/";
                        String fileDirectory2 = clients.getFtpFolder() + "/" + "processed" + "/";
                        sftpChannel.cd(fileDirectory1);
                        if (sftpChannel.get(newfile) != null){
                            sftpChannel.rename(fileDirectory1 + newfile , 
                                    fileDirectory2 + newfile );
                            sftpChannel.cd(fileDirectory2);
                            sftpChannel.rm(existingfile );
                        }

控制台:

Caused by:2: No such file
at com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2846)

我试过了

Move a directory in remote server to another location in the same remote server using jsch

你可以试试ChannelSftp#rename:

sftpChannel.rename(oldPath, newPath);

请注意 oldPathnewPath 可以是当前远程工作目录的相对路径或绝对远程路径。

已编辑:

您似乎使用 sftpChannel.cd(fileDirectory1) 将您的工作目录更改为 fileDirectory1 并假设 newfile 在该目录中,您可以尝试使用

sftpChannel.rename(filename, destFilePath);

注意filename是文件名,destFilePath是目标的远程文件路径。我以前用过,效果很好。

您的代码将类似于:

sftpChannel.rename(newfile, fileDirectory2 + newfile); 

在你的代码中。希望这可以帮助