.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 ファイルが見つかったらその場所をコピーするにはどうすればよいですか
どんな助けでも感謝されます