请教个关于apache的commons-net 2.0中ftpclient的问题
我的项目需要从一个ftp上读取文件列表,然后进行判断后继续处理。
最开始使用的是这样的语句
FTPFile[] ftpfiles = ftp.list();
文件数多就直接卡死。也不报超时之类的。
后来改用
FTPListParseEngine engine = ftpUtil.ftp.initiateListParsing();
while(engine.hasNext()){
FTPFile[] files = engine.getNext(25);
//......
}
好了很多,但是有时候还是会卡死。而且这个卡死跟文件个数还没关系了。
目前无法确认卡死现象是出在initiateListParsing()这一句还是在engine.getNext(25)这句。
不知道各位有没有什么好办法,能让列出文件如果长时间得不到结果就往下继续?
多谢。
------解决方案--------------------这方面不是很懂,帮顶一下
------解决方案--------------------FTPFile[] ftpfiles = ftp.list();
文件数多就直接卡死。
服务器上有多少文件?如果真的太多,从服务器上想想办法,建子目录,放不同的文件............
------解决方案--------------------
这个貌似是FtpClient本身的问题,解决方案:1)划分子目录,缩小文件目录规模;2)看看3.0包好使不;3)用ExecutorService+FutureTask去实现获取文件目录动作,实现超时处理。
------解决方案--------------------