commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nicolas (Created) (JIRA)" <>
Subject [jira] [Created] (NET-455) FTPClient listFiles(FTPFileFilter) can be faster...
Date Tue, 20 Mar 2012 15:43:40 GMT
FTPClient listFiles(FTPFileFilter) can be faster...

                 Key: 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) {
		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

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


View raw message