下载文件时发生Java FTP commons net错误
我正在使用apache commons.net访问ftp站点,该站点的目录位于unix中:下载文件时发生Java FTP commons net错误,java,ftp,Java,Ftp,我正在使用apache commons.net访问ftp站点,该站点的目录位于unix中: import org.apache.commons.net.ftp.FTP; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPFile; 我正在循环浏览一个列表,其中包含我想在特定ftp站点上下载的文件名的名称 String ftpPath = "/home/user1/input/";
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
我正在循环浏览一个列表,其中包含我想在特定ftp站点上下载的文件名的名称
String ftpPath = "/home/user1/input/";
FileOutputStream fos = null;
File file;
try {
for (int i = 0; i < fileList.size(); i++) {
file = new File(ftpPath+fileList.get(i).toString());
OutputStream outputStream1 = new BufferedOutputStream(new FileOutputStream(file));
boolean download = ftpClient.retrieveFile("c:/test/downloadedFile.csv", outputStream1);
outputStream1.close();
if (download) {
System.out.println("File downloaded successfully !");
} else {
System.out.println("Error in downloading file ! " + downloadFile);
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
String ftpPath=“/home/user1/input/”;
FileOutputStream=null;
文件;
试一试{
对于(int i=0;i
但是,一旦我尝试开始下载文件,我就会出现这个错误,尽管检查ftp站点时,该文件位于/home/user1/input/TejasSDH_PM_AU_09_07_2014_09_00.csv-rw-r--r--:
java.io.FileNotFoundException:\home\user1\input\TejasSDH\u PM\u AU\u 09\u 07\u 2014\u 09\u 00.csv(系统找不到指定的路径)
在java.io.FileOutputStream.open(本机方法)
位于java.io.FileOutputStream。(FileOutputStream.java:221)
位于java.io.FileOutputStream。(FileOutputStream.java:110)
在com.syntronic.client.FTPDataExtract$1.下载TejasFiles(FTPDataExtract.java:255)
位于com.syntronic.client.FTPDataExtract$1.run(FTPDataExtract.java:133)
我认为作为我连接的ftp站点,路径dir位于unix home/user1/input中,java正在将所有“/”转换为“\”。有人知道eclipse中的错误是什么意思,或者我的代码有什么问题吗?谢谢你你好像在改变主意 您正在打开一个文件outputstream到
\home\user1\input\TejasSDH\u PM\u AU\u 09\u 07\u 2014\u 09\u 00.csv
,而您似乎在windows上,因此无法工作
您有ftp路径应该到达的本地路径,反之亦然
请仔细阅读错误,我敢打赌FTPDataExtract.java中的255行是:
fos = new FileOutputStream(downloadFile);
这应该提醒您这实际上不是ftp问题。for(int i=0;ifor (int i = 0; i < fileList.size(); i++) {
OutputStream output;
output = new FileOutputStream("C:/test/" + fileList.get(i).toString());
ftpClient.retrieveFile(ftpPath + fileList.get(i).toString(), output);
output.close();
}
输出流输出;
output=newfileoutputstream(“C:/test/”+fileList.get(i).toString());
ftpClient.retrieveFile(ftpPath+fileList.get(i).toString(),输出);
output.close();
}
我错误地切换了远程和本地路径,正确切换将使程序平稳运行。我明白你的意思。我更新了代码(见上文),因为我目前正在寻找解决方案,但同样的错误仍然显示,即使将输出流更改为file.nablex,谢谢,我终于明白了您的意思。我真蠢。我从本地路径切换了遥控器。需要马上去看医生,连续做8小时的编码让我的思维迟钝。再次感谢你。
for (int i = 0; i < fileList.size(); i++) {
OutputStream output;
output = new FileOutputStream("C:/test/" + fileList.get(i).toString());
ftpClient.retrieveFile(ftpPath + fileList.get(i).toString(), output);
output.close();
}