FTPClient listFiles(FTPFileFilter) can be faster... ---------------------------------------------------
Key: NET-455 URL: https://issues.apache.org/jira/browse/NET-455 Project: Commons Net Issue Type: Improvement Components: FTP Affects Versions: 3.0.1 Environment: all Reporter: Nicolas Priority: Minor I tested two ways of sorting files on a remote FTP server with many files ( > 110 000). Both of these use the FtpFileFilter class (with a test on the extension filename... very simple). The first one is the conventionnal => files = ftpClient.listFiles("./", ftpFileFilter); It takes about 90 seconds ... the second one is ... nearly as simple as the first one : FTPFile [] allFilesListed = ftpClient.listFiles(); files = FTPFileFilterWithExtension.fastFilter(ftpFileFilter, allFilesListed); The function FTPFileFilterWithExtension.fastFilter() call the same ftpFileFilter : public static FTPFile [] fastFilter(FTPFileFilter filter, FTPFile ftpFileArray []) { ArrayList<FTPFile> listOfFTPFiles = new ArrayList<FTPFile>(); for (FTPFile ftpf : ftpFileArray) { boolean accepted = filter.accept(ftpf); if (accepted) { listOfFTPFiles.add(ftpf); } } FTPFile resultArray [] = new FTPFile[listOfFTPFiles.size()]; return listOfFTPFiles.toArray(resultArray); } The second method is EIGHT times faster than the first one ... and I don't really understand why... -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira