我需要做的是从用户那里搜索文件的路径,并从用户那里获取一组字符,这是要搜索的文件名的一部分。找到文件后,它将显示所有位置,包括子文件夹以及完整的文件名。我所做的是获取给定路径中的所有文件,并使用ListFiles()将它们放入File[]数组中.获取所有文件的名称并将它们保存到数组列表中。创建另一个数组列表并仅保存文件名,而不保存前一个数组列表的扩展名。然后使用用户输入的字符集与此数组列表中的每个文件名进行比较。为了测试这是否有效,我将其打印了出来,但它打印了所有文件名,而不仅仅是与用户输入的字符集匹配的文件名.这是我的代码:
import java.util.*;
import java.io.*;
public class FileSearch
{
public static void main(String args[])
{
try
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println(" 1.Enter the path to search:");
String str = br.readLine();
System.out.println(" 2.Enter some characters of the filename:");
String str1 = br.readLine();
File files = new File(str);
File[] f = files.listFiles();
List<String> li = new ArrayList<String>();
List<String> li1 = new ArrayList<String>();
for(int i=0;i<f.length;i++)
{
if(f[i].isFile())
{
li.add(f[i].getName());
}
}
for(int i=0;i<li.size();i++)
{
int j = li.get(i).lastIndexOf('.');
li1.add((j>-1)?li.get(i).substring(0, j):li.get(i));
}
for(int i=0;i<li1.size();i++)
{
if(li1.get(i).contains(str1));
{
System.out.println(li1.get(i));
}
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}