我正在尝试选择已知目录中的所有.txt文件。 例如我知道路径:C:/../桌面/ 现在我想要获取桌面上的所有.txt文件。
那么我应该使用哪个regularExpression以及如何搜索它?关于java,我不太了解knowlegde。如果你帮助我,我会非常高兴。
String regularExpression = ?
String path = "C:/../Desktop/";
Pattern pattern = Pattern.compile(regularExpression);
boolean isMatched = Pattern.matches(regularExpression,path);
答案 0 :(得分:5)
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上,按照Paths.get
所述构建目录的Path
。此方法接受一个或多个参数,这些参数一起构建路径。在我的示例中,参数/tmp
,subdir
和subsubdir
会生成/tmp/subdir/subsubdir
。在Windows上,您可能会构建来自C:
和Desktop
等段的路径。
答案 1 :(得分:2)
以下是答案:
String regularExpression = ".*\.txt";
答案 2 :(得分:0)
"path".endsWith(".txt")
会更快
答案 3 :(得分:0)
尝试此操作来处理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
}
}
}