Регулярное выражение 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
,
Попробуйте это для обработки текстовых файлов, это будет принимать все файлы внутри корневой папки и внутренней папки.
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
}
}
}