在目录和所有子目录中获取 Java 个文件
Get Java files in Directory and all Subdirectories
我正在尝试获取 directory
(给定的)及其所有子目录中的所有 .java-files
。这就是我想出的:
public static void getJavaFiles(Path path) {
DirectoryStream<Path> stream = null;
try {
stream = Files.newDirectoryStream(path);
for (Path entry : stream) {
if (Files.isRegularFile(entry)) {
if(entry.getFileName().toString() == "*.java") {
System.out.println(entry.getFileName().toString());
};
} else if (Files.isDirectory(entry)) {
getJavaFiles(entry);
}
}
} catch (IOException e) {
throw new RuntimeException(String.format("error reading folder %s: %s", path, e.getMessage()), e);
} finally {
if(stream != null) {
try {
stream.close();
} catch (IOException e) {
}
}
}
}
不幸的是 entry.getFileName().toString() == "*.java"
没有像我想象的那样工作。我获得了所有文件,但如何只获得 .java
文件?
你可以检查这个:
if(entry.getFileName().endsWith(".java"))
我正在尝试获取 directory
(给定的)及其所有子目录中的所有 .java-files
。这就是我想出的:
public static void getJavaFiles(Path path) {
DirectoryStream<Path> stream = null;
try {
stream = Files.newDirectoryStream(path);
for (Path entry : stream) {
if (Files.isRegularFile(entry)) {
if(entry.getFileName().toString() == "*.java") {
System.out.println(entry.getFileName().toString());
};
} else if (Files.isDirectory(entry)) {
getJavaFiles(entry);
}
}
} catch (IOException e) {
throw new RuntimeException(String.format("error reading folder %s: %s", path, e.getMessage()), e);
} finally {
if(stream != null) {
try {
stream.close();
} catch (IOException e) {
}
}
}
}
不幸的是 entry.getFileName().toString() == "*.java"
没有像我想象的那样工作。我获得了所有文件,但如何只获得 .java
文件?
你可以检查这个:
if(entry.getFileName().endsWith(".java"))