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

时间:2016-07-06 06:59:24

标签: java io sftp

当我尝试将文件从fileDirectory1移动到fileDirectory2时。有没有办法在一个FTP服务器中将该文件从一个路径移动或复制到另一个路径。请任何人都可以帮助我。

以下是我的示例代码:

                      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)

我试过How to move file from directory A to directory B in remote server?

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

1 个答案:

答案 0 :(得分:1)

您可以尝试ChannelSftp#rename

sftpChannel.rename(oldPath, newPath);

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

<强>编辑:

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

的内容
sftpChannel.rename(filename, destFilePath);

请注意,filename是文件名,destFilePath是目标的远程文件路径。我之前使用它并且工作正常。

您的代码将类似于:

sftpChannel.rename(newfile, fileDirectory2 + newfile); 
你的代码中的

。希望这可以帮助

相关问题