要获取 Java 项目中所有的文件名,可以通过以下步骤实现:
-
使用递归遍历获取项目中所有的文件:
//获得所有的文件名
public class getfilename {
//这是一个main方法,是程序的入口:
public static void main(String[] args) {
List<String> fileNames = new ArrayList<>();
try {
// 获取当前类加载器
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
// 获取当前类加载器加载的所有资源的 URL
URL url = classLoader.getResource("");
// 如果是文件系统的路径
if (url.getProtocol().equals("file")) {
String basePath = URLDecoder.decode(url.getFile(), "UTF-8");
File baseDir = new File(basePath);
// 递归扫描文件夹中的所有文件
scanFiles(fileNames, baseDir);
}
for (String fileName : fileNames) {
System.out.println(fileName);
}
} catch (Exception e) {
e.printStackTrace();
}
}
// 递归扫描文件夹中的所有文件
private static void scanFiles(List<String> fileNames, File currentFile) {
if (currentFile.isDirectory()) {
File[] files = currentFile.listFiles();
if (files != null && files.length > 0) {
for (File file : files) {
scanFiles(fileNames, file);
}
}
} else if (currentFile.isFile()) {
String filePath = currentFile.getAbsolutePath();
fileNames.add(filePath);
}
}
}
2.打印所有文件名:
for (String fileName : fileNames) {
System.out.println(fileName);
}
这样就能获取到 Java 项目中所有的文件名了。请注意,该方法仅适用于在文件是以文件系统形式存储的情况下,对于 JAR 文件中的文件是无法获取到的。另外,如果项目中有很多文件,可能会需要一定的时间来扫描和获取文件名。