Java Programming

Searching File

Java programming example for searching file from directory

10/10/2021
0 views
search-file.javaJava
/* Searching from directory */
import java.io.File;
import java.util.ArrayList;
import java.util.List;

class searching {
	private String fileNameToSearch;
	private List result = new ArrayList();

	public String getFileNameToSearch() {
		return fileNameToSearch;
	}

	public void setFileNameToSearch(String fileNameToSearch) {
		this.fileNameToSearch = fileNameToSearch;
	}
 
	public List getResult() {
		return result;
	}

	public void searchDirectory(File directory, String fileNameToSearch) {
		setFileNameToSearch(fileNameToSearch);
		if (directory.isDirectory())
			search(directory);
		else
			System.out.println(directory.getAbsoluteFile() + " is not a directory!");
	}

	private void search(File file) {
		if (file.isDirectory()) {
			System.out.println("Searching directory ... " + file.getAbsoluteFile());

			/* Checking file permission in directory */	
			if (file.canRead()) {
				for (File temp : file.listFiles()) {
					if (temp.isDirectory()) 
						search(temp);
					else {
						if (getFileNameToSearch().equals(temp.getName().toLowerCase()))			
							result.add(temp.getAbsoluteFile().toString());
					}
				}
			}
		}
		else
			System.out.println(file.getAbsoluteFile() + "Permission Denied"); 
	}
}
 
class searchFile { 
	public static void main(String args[]) {
		searching fileSearch = new searching();

		/* Try different directory and filename */
		fileSearch.searchDirectory(new File("/"), "abc.txt");
		int count = fileSearch.getResult().size();
		if(count ==0)
			System.out.println("\nNo result found!");
		else {
			System.out.println("\nFound " + count + " result!");
			for (String matched : fileSearch.getResult())
				System.out.println("Found : " + matched);
		}
	}
}




/* Output */
No result found!

/* ---------------------- */

Found : /home/user/Documents/abc.txt
Java TutorialSearching FilesDirectory Search

Loading comments...

Related Examples

Deliver breaking news, insightful commentary, and exclusive reports.

Targeting readers who rely on our platform to stay ahead of the curve.

Contact Us: benzingaheadlines@gmail.com