aditya15goyal
BAN USERpackage Interview_Specific;
import java.io.File;
import java.util.*;
/**
* Created by GOOGLE on 8/19/2015.
*
*/
public class HighUtilitySearch {
public List<File> search(List<File> outputList, String topFolderName, String searchOption, String searchPattern, Integer timeout) {
Long currentTime = System.currentTimeMillis();
File file = new File(topFolderName);
if (file.exists()) {
File[] allFiles = file.listFiles();
if (allFiles != null && allFiles.length > 0) {
for (File tempFile : allFiles) {
switch (isTimeOver(currentTime, timeout)) {
case 0:
break;
case 1:
switch (searchOption) {
case "BOTH":
addMatchedFileNameToList(outputList, tempFile, searchPattern);
if (tempFile.isDirectory()) {
search(outputList, tempFile.getPath(), searchOption, searchPattern, timeout);
}
break;
case "FILE":
if (!tempFile.isDirectory()) {
addMatchedFileNameToList(outputList, tempFile, searchPattern);
}
search(outputList, tempFile.getPath(), searchOption, searchPattern, timeout);
break;
case "FOLDER":
if (tempFile.isDirectory()) {
addMatchedFileNameToList(outputList, tempFile, searchPattern);
}
break;
default:
System.out.println("-------------INVALID SEARCH OPTION-------------");
break;
}
}
}
}
}
return outputList;
}
private Integer isTimeOver(Long startTime, Integer timeout) {
Long currentTime = System.currentTimeMillis();
if (currentTime >= startTime + timeout) {
return 0;
}
return 1;
}
public List<File> addMatchedFileNameToList(List<File> fileList, File file, String searchPattern) {
if (file.getName().contains(searchPattern)) {
fileList.add(file);
}
return fileList;
}
public static void main(String[] args) {
List<File> outputSearchResults = new ArrayList<>();
HighUtilitySearch highUtilitySearch = new HighUtilitySearch();
outputSearchResults = highUtilitySearch.search(outputSearchResults, "C:\\Users\\GOOGLE\\IdeaProjects", "FILE", ".class", 1000000000);
System.out.println("------------HERE ARE THE SEARCH RESULTS------------");
for (File outputFile : outputSearchResults) {
System.out.println(outputFile.getPath() + "\n");
}
System.out.println("--------------END OF SEARCH RESULTS--------------\n");
System.out.println("YOUR SEARCH RETURNED " + outputSearchResults.size() + " RESULTS");
}
}
- aditya15goyal August 20, 2015