Поиск файлов по шаблону из консоли с помощью пользовательского ввода - Java - PullRequest
0 голосов
/ 26 июня 2018

Я хотел бы спросить вас: как я могу создать программу, которая делает простой «подобный фильтр» для поиска файлов по пользовательскому вводу.Например, когда пользователь вводит данные из консоли: * 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");
                }
            }

        }
}

1 Ответ

0 голосов
/ 26 июня 2018

Попробуйте

(fileName)\w+.txt для fileName * .txt

(file)\w+(Name).txt для файла * Name.txt

и

\w+(text).txt для* text.txt

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...