java实现的FtpClient , 下载到本地后,文件名正确但文件大小为0
本机用Ser-U建了个ftp服务器端,本机防火墙允许21端口及Ser-U访问
测试程序如下,但下载不正常,如题所述
package ftp;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.SocketException;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
public class test {
public test() {
//null
}
public static void main(String[] arg0) {
FTPClient ftpClient = new FTPClient();
String hostName = "127.0.0.1";
String userName = "hello";
String password = "hello";
String remoteDir = "/Region_INFO/txt";
try {
ftpClient.connect(hostName,21);
ftpClient.setControlEncoding("GBK");
ftpClient.login(userName, password);
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
FTPFile[] files = ftpClient.listFiles(remoteDir);
for (int i = 0; i <files.length; i++) {
String name = files[i].getName();
if (!(name.equals(".")) && !(name.equals(".."))){
System.out.println("name:" + name);
File file = new File("C:\\FTP\\txt.txt");
FileOutputStream fos = new FileOutputStream(file);
ftpClient.retrieveFile(name, fos);
System.out.println("down success");
}
}
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
我弄不明白红色部分的name参数,不知什么意思! 如果吧这一句去掉,照样能下载得到一个空的但文件名相同的文件。请各位论坛的前辈指教!