Я хотел бы спросить вас: как я могу создать программу, которая делает простой «подобный фильтр» для поиска файлов по пользовательскому вводу.Например, когда пользователь вводит данные из консоли: * fileName.txt, он ищет все файлы, содержащие fileName, и звездочки показывают, что перед «fileName» может быть несколько слов.
Вот несколько примеров: Ввод пользователя из консоли:
* text.txt -> соответствует всем файлам, содержащим text.txt
fileName * .txt -> соответствует всем файламсодержит fileName и может содержать слова после «fileName».file * Name.txt -> соответствует всем файлам, содержащим файл и имя, и между ними может быть несколько слов.
Я знаю, что это должно быть с регулярным выражением, но я не знаю, какое регулярное выражение я должен использовать.Так что вы можете сказать мне, какие шаблоны я должен использовать.Спасибо заранее!
Вот мой код для поиска файлов:
public void FilterFile(String directory, String fileToSearch)
{
File filePath = null;
if (directory != null)
{
File filePath = new File(directory); \\ reads Directory
FilenameFilter fnf = new FilenameFilter()
{
@Override
public boolean accept(File dir, String name)
{
if (name != null)
{
if(pattern.matcher(name).matches()) // pattern that should use for matching and filtering files by user input
{
return true;
}
return false;
}
};
File[] files = filePath.listFiles(fnf);
if (files != null)
{
for (File file : files)
{
System.out.println(file.getAbsolutePath() + " found");
}
}
}
}