gpt4 book ai didi

java - 是否可以使用java中的FileNameFilter接口(interface)按大小过滤文件

转载 作者:行者123 更新时间:2023-12-01 19:46:49 24 4
gpt4 key购买 nike

我知道我可以使用 FileFilter 接口(interface)来完成我想要的操作,但我有一个练习,不知何故需要我使用 FileNameFilter 实现按大小过滤文件。

我这里有一个简单的代码,我给出一个目录,该代码应该从技术上过滤该目录中的文件,并只给出以“.exe”结尾且具有特定大小的文件。但是,我无法使用 FileNameFilter 进行大小过滤,因为它检查我发送的目录的大小,而不是其中的文件。

我的 FileNameFilter 实现:

import java.io.File;
import java.io.FilenameFilter;

public class MyFileFilter implements FilenameFilter {
private String x;
private int size;

public MyFileFilter(String x, int size){
this.x = x;
this.size = size;
}

@Override
public boolean accept(File dir, String name) {
//i can't use the dir.length because it checks the size of the directory and not the inside files
return name.endsWith(x); // && dir.length() == size;
}
}

和主要:

File f = new File("C:\\Users\\Emucef\\Downloads\\Programs");
MyFileFilter mff = new MyFileFilter(".exe", 9142656);
File[] list = f.listFiles(mff);

所以基本上问题是:有没有一种方法可以使用 FileNameFilter 按大小过滤文件,如果可以,如何实现?

最佳答案

试试这个:

@Override
public boolean accept(File dir, String name) {
File file = new File(dir, name);
return name.endsWith(x) && file.length() == size;
}

关于java - 是否可以使用java中的FileNameFilter接口(interface)按大小过滤文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52927587/

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