gpt4 book ai didi

java - FilenameFilter 不过滤 zip 文件 - Java

转载 作者:行者123 更新时间:2023-12-01 16:33:27 24 4
gpt4 key购买 nike

我正在实现一个 ZipComparison 文件,它遍历目录树结构,并处理以下目录中所有 .zip 文件的 MD5该目录树结构。

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 );
}

}

当我在没有 ZipFilenameFilter 过滤器 的情况下执行程序时,它工作得很好。但是,当我将 filter 添加到

File[] files = new File( ZipComparison.root_a ).listFiles( filter );

没有打印任何内容。我错过了什么吗?

最佳答案

您正在递归搜索,但错误地过滤了目录。尝试一下

if( name != null &&(name.isDirectory()||
name.toLowerCase().endsWith(".zip")))

关于java - FilenameFilter 不过滤 zip 文件 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12008446/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com