将特定文件上载到java中的文件夹(FTP)

时间:2018-05-04 04:02:43

标签: java file ftp transfer

美好的一天,

我只需要你帮助我的程序..基本上我的程序打算从本地PC传输文件或复制文件并将其传输到远程站点(FTP) 这是我的代码:

FTPClient destFtpClient = new FTPClient();
                    destFtpClient.connect(destIPAddressCom, intPort);
                    destFtpClient.login(destFtpID, destFtpPwd);
                    destFtpClient.enterLocalPassiveMode();

                    destFtpClient.setFileType(FTPClient.BINARY_FILE_TYPE);

                    String newRoot = recipeRoot.toString();
                    File[] transFiles = new File(newRoot).listFiles();
                        for(File file : transFiles) {
                            for(int i = 0; i < transFiles.length; i++){
                            File destFile = new File(destTest); //destination path
                            //File newDestFile = new File(destFile +File.separator+file.getName()); // destination path with the file
                            FileInputStream fisFile = new FileInputStream(destFile);
                            destFtpClient.storeFile(file.getName(), fisFile);
                            fisFile.close();
                        }
                    }

我有一个错误:

  

java.io.FileNotFoundException:\ Test(指定的路径无效)

但目标文件夹为Test 这是特定文件夹/Test/file 我跳,你可以帮助解决这个问题。先感谢您!

EDITED

我试图使用@Whome所说的内容,并且在第一次运行时它会在尝试重新运行后突然发挥作用并且上面出现同样的错误。

destFtpClient.changeWorkingDirectory("//Test");
                                destFtpClient.makeDirectory("//Test");
                                File destFile = new File(destTest);
                                FileInputStream fisFile = new FileInputStream(p1dest);
                                destFtpClient.storeFile(file.getName(), fisFile);

1 个答案:

答案 0 :(得分:1)

在上传文件之前尝试使用ftpclient.changeWorkingDirectory("/Test"),并可能领先makeDirectory("/Test")。为什么你有foreach和for(idx)循环?更改工作目录后,只使用没有完整路径的文件名上传。