我刚制作了一个程序,它遍历一个jar文件,并打印出每个.class文件的所有限定路径名
我的代码如下所示:
public static ArrayList<String> getClassNames(String jarName) {
ArrayList<String> CorbaClasses = new ArrayList<String>();
System.out.println("Jar " + jarName );
try {
JarInputStream jarFile = new JarInputStream(new FileInputStream(
jarName));
JarEntry jarEntry;
while (true) {
jarEntry = jarFile.getNextJarEntry();
if (jarEntry == null) {
break;
}
if (jarEntry.getName().endsWith(".class")) {
System.out.println("Found "
+ jarEntry.getName().replaceAll("/", "\\.").replace(".class", ""));
CorbaClasses.add(jarEntry.getName().replaceAll("/", "\\."));
jarFile.close();
}
}
jarFile.close();
} catch (Exception e) {
e.printStackTrace();
}
return CorbaClasses;
}
我现在需要的不是只迭代一个jar文件,而是迭代一堆文件夹,每个文件夹中都有一个jar文件,我需要打印出类文件的路径名。
我该怎么做?
答案 0 :(得分:0)
迭代多个目录/子目录使用以下代码。
File path = new File("your root Directory path");
File [] files = path.listFiles();//return list of all folder plus file in root directory
for (int i = 0; i < files.length; i++){
if (files[i].isFile()){ //if it is file do something
System.out.println(files[i]);
}else {
//it is directory go inside to find jar files
//if inside also directory found make it function and call it recursively
}
}