Регулярное выражение Java на найти все.txt

Я пытаюсь выбрать все файлы.txt в известной директории. Например, я знаю путь: C:/../Desktop/ и теперь я хочу взять все файлы.txt, которые находятся на рабочем столе.

Итак, какое регулярное выражение я должен использовать и как его искать? Я не знаю очень много знаю о Java. Если вы мне поможете, я буду очень счастлив.

String regularExpression = ?

String path = "C:/../Desktop/";
Pattern pattern = Pattern.compile(regularExpression);
boolean isMatched = Pattern.matches(regularExpression,path);

4 ответа

Решение

Использование Files.newDirectoryStream:

import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class App {

    public static void main(String[] args) throws Exception {
        Path dir = Paths.get("/tmp", "subdir", "subsubdir");
        try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir, "*.txt")) {
            for (Path path : stream) {
                System.out.println(path.getFileName());
            }
        }    
    }
}

В Windows создайте Path каталога, как описано для Paths.get, Этот метод принимает один или несколько параметров, которые вместе создают путь. В моем примере параметры /tmp, subdir, а также subsubdir результат в /tmp/subdir/subsubdir, В Windows вы, вероятно, построите путь из таких сегментов, как C: а также Desktop,

Вот ответ:

String regularExpression = ".*\.txt";

Попробуйте это для обработки текстовых файлов, это будет принимать все файлы внутри корневой папки и внутренней папки.

    public static void main(String[] arg"s) throws Exception {
     File dir = new File("YOUR_ROOT_FILE_PATH");
                    File[] dirs = dir.listFiles();
                    parseFiles(dirs);
}

        public static void parseFiles(File[] files) throws Exception {
                for (File file : files) {
                    if (file.isDirectory()) {
                        parseFiles(file.listFiles());
                    } else {
                        if(file.getAbsolutePath().endsWith(".txt"){
        //do ur stuff here or call a function and pass this file as argument
                        }
                    }
                }

"path".endsWith(".txt") будет быстрее

Другие вопросы по тегам