Searching for a string through number of files in an FTP folder manually is a cumbersome process especially when the number of files in the folder is huge. This is a sample code would search for a particular string in all files of a specific folder of FTP. The folder name can be changed in the code according to the requirement
import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.util.Calendar; import java.util.Date; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPFile; public class search_case { public static void main(String[] args){ try{ FTPClient client = new FTPClient(); OutputStream out = null; String host = "url of the FTP"; String tempString; String searchId = "testString"; int i; client.connect(host); client.login("username", "password"); System.out.println("Connected"); client.cwd("/home/username/foldername"); FTPFile[] files = client.listFiles(); int count = files.length; System.out.println("Total number of files "+count); for(i=0;i<files.length;i++) { String temp = files[i].toString(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); client.retrieveFile(temp,baos); byte[] tempFile = baos.toByteArray(); ByteArrayInputStream bais = new ByteArrayInputStream(tempFile); BufferedReader br = new BufferedReader (new InputStreamReader(bais)); while((tempString=br.readLine())!=null){ if(tempString.indexOf(searchId)!=-1){ System.out.println("the search string -- "+searchId +" --is found in the file--"+temp); } } br.close(); baos.close(); bais.close(); } }catch(Exception exception) { exception.printStackTrace(); } } }