ZipComparison
파일을 구현합니다.이 파일은 디렉토리 트리 구조를 탐색하고 해당 디렉토리 트리 구조에있는 .zip
개 파일 중 MD5
개를 처리합니다. 나는 ZipFilenameFilter filter
하지 않고 프로그램을 실행하면FilenameFilter가 zip 파일을 필터링하지 않습니다 - Java
import java.io.*;
public class ZipComparison {
public class ZipFilenameFilter implements FilenameFilter {
public boolean accept(File dir, String name) {
if(name != null &&
(dir.isDirectory() || name.toLowerCase().endsWith(".zip"))) {
return true;
}
return false;
}
}
/**
* These two constant values are the root for the directory
*/
private static final String root_a = "D:/UDU/r/tc10.0.0.2012080100_A";
private static final String root_b = "D:/UDU/r/tc10.0.0.2012080100_B";
private ZipFilenameFilter filter;
public ZipComparison() {
this.filter = new ZipFilenameFilter();
}
public void matchMD5() {
try{
File root = new File(ZipComparison.root_a);
if(!root.exists()){
System.out.println("root doesn't exist");
}
else if(!root.isDirectory()) {
System.out.println("root isn't a directory");
}
else{
File[] files = new File(ZipComparison.root_a).listFiles(this.filter);
if(files != null){
showFiles(files);
}
else{
System.out.println("List of files was null.");
System.exit(-1);
}
}
}
catch(SecurityException ex){
ex.printStackTrace();
}
}
/**
* iterates over the directory tree structure.
* @param files
*/
public void showFiles(File[] files){
for(File file : files){
if(file.isDirectory()) {
System.out.println("Directory: " + file.getName());
showFiles(file.listFiles(this.filter));
}
else {
System.out.println("File: " + file.getName());
}
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ZipComparison zc = new ZipComparison();
zc.matchMD5();
System.exit(0);
}
}
는 잘 작동합니다. 그러나 filter
을
File[] files = new File(ZipComparison.root_a).listFiles(filter);
아무 것도 출력되지 않습니다. 내가 놓친 게 있니?
것 같습니다? –
@TylerHeiks 내 질문을 업데이트했습니다.보세요. – cybertextron
@philippe 코드를 편집하여 올바르게 입력하십시오. 그것은 빈 클래스와 클래스 내의 클래스를 가지고 있기 때문입니다. –