使用 `java.io.File` API 取得當前工作目錄,列出所有檔名以 `.xml` 結尾的檔案。適用於啟動時掃描配置檔、批次處理等場景。
import java.io.File;
public class ListXmlFiles {
public static void main(String[] args) {
File dir = new File("").getAbsoluteFile(); // 當前工作目錄
File[] files = dir.listFiles((d, name) -> name.toLowerCase().endsWith(".xml"));
if (files != null) {
for (File f : files) {
System.out.println(f.getName());
}
} else {
System.out.println("目錄不存在或無讀取權限");
}
}
}
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class FindXmlRecursive {
public static void main(String[] args) {
List xmlFiles = new ArrayList<>();
collectXml(new File("").getAbsoluteFile(), xmlFiles);
xmlFiles.forEach(f -> System.out.println(f.getAbsolutePath()));
}
static void collectXml(File dir, List result) {
File[] files = dir.listFiles();
if (files == null) return;
for (File f : files) {
if (f.isDirectory()) {
collectXml(f, result);
} else if (f.getName().toLowerCase().endsWith(".xml")) {
result.add(f);
}
}
}
}
import java.nio.file.*;
import java.io.IOException;
public class NioFindXml {
public static void main(String[] args) throws IOException {
Path start = Paths.get("").toAbsolutePath();
Files.walkFileTree(start, new SimpleFileVisitor() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) {
if (file.getFileName().toString().toLowerCase().endsWith(".xml")) {
System.out.println(file.toAbsolutePath());
}
return FileVisitResult.CONTINUE;
}
});
// 或使用 Stream (Java 8+)
// Files.walk(start).filter(p -> p.toString().endsWith(".xml")).forEach(System.out::println);
}
}