我希望遍历多个文件,直到找到 .zip 文件或 .xml 文件
我有包含多个文件夹的文件,并且在每个文件夹的末尾都有 .zip 文件和 .xml 文件,而一些文件夹甚至可能没有
以下是我的代码:
package Traversefile;
import java.io.File;
public class traversefile {
/**
* @param args
*/
static String[] str1;
static File dir = new File("/home/evangelist/newdata");
private static void traverse(File dir) throws NullPointerException{
if (dir.isDirectory())
{
String[] children = dir.list();
for (int i=0; i<children.length; i++)
{
traverse(new File(dir, children[i]));
}
}
if (dir.isFile())
{
str1 = dir.list();
}
for (int i=0; i<str1.length; i++)
{
System.out.println("filename:"+ str1[i]);
}
}
public static void main(String[] args) {
traverse(dir);
// TODO Auto-generated method stub
}
}
我为检查遍历所做的更改:包 Traversefile;
导入java.io.File;
公共类遍历文件{
/**
* @param args
*/
static String[] str1;
//static String homePath = System.getProperty("user.home");
static File dir = new File("/home/evangelist/newdata/nnc2/pairtree_root/ar/k+/=1/39/60/=t");
static int counter = 0;
static int kounter = 0;
static int krounter = 0;
private static void traverse(File dir) throws NullPointerException{
if(dir.isDirectory())
{
counter ++;
String[] children = dir.list();
//System.out.println(children);
for (int i=0; children != null && i<children.length; i++)
{
//System.out.println(children[i]);
//System.out.println(" yo + "+ counter );
traverse(new File(dir,children[i]));
}
}
if (dir.isFile())
{
krounter++;
if (dir.getName().endsWith(".xml")) //dir.getName().endsWith(".zip") ||
{
System.out.println(dir.getAbsolutePath());
//System.out.println(krounter);
}
}
}
public static void main(String[] args) {
traverse(dir);
// TODO Auto-generated method stub
}
}
它在第 27 行和第 19 行给了我一个空点异常。
如何遍历 n 个文件夹,最后当我找到 .zip znd .xml 文件时复制它们的位置
任何帮助将不胜感激