麻烦帮我看下这个递归怎么死循环了?
最近在做FTPClient想列举出FTP服务器中所有文件及子目录下的文件。
程序如下,只是好像列举子目录会出毛病。不知道递归错在哪里?
import java.io.IOException;
import java.net.SocketException;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
public class MyFTP {
private String ip = "192.168.0.11";
private int port = 21;
private String username = "kevin";
private String password = "kevin";
private FTPClient ftpClient = new FTPClient();
public boolean login() {
boolean isLogin = false;
try {
ftpClient.connect(ip, port);
ftpClient.login(username, password);
isLogin = true;
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return isLogin;
}
public void listAllFiles(String remotePath) {
if (this.login()) {
try {
if (remotePath.startsWith("/") && remotePath.endsWith("/")) {
FTPFile[] files = ftpClient.listFiles(remotePath);
for (int i = 0; i < files.length; i++) {
if (files[i].isFile()) {
System.out.println(files[i].getName());
} else if (files[i].isDirectory()) {
System.out.println("hello");
listAllFiles(remotePath + files[i].getName() + "/");
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
MyFTP ftp = new MyFTP();
ftp.listAllFiles("/");
}
}
一直打印出hello死循环了。。。。