文件的高级获取功能
- public String[] list()
获取当前路径的所有文件的名字放到数组里,如果File对象关联的不是一个路径,那么返回值为null - public file[] listfiles()
把当前路径下面的所有文件 封装成一个file对象 这样的话我们就可以操作、判断 - 对接口FilenameFilter的实现,即文件名过滤器
对接口FilenameFilter的实现
package Object;
import java.io.File;
import java.io.FilenameFilter;
public class FileTest implements FilenameFilter{//filenamefilter接口的实现 即文件名过滤器
@Override
public boolean accept(File dir, String name) {
// dir 文件的父路径 name 当前文件的名字
File f = new File(dir,name); //利用当前的dir和name 创建一个file对象
if(name.endsWith("ini") && f.isFile()){
return true;
}
return false;
}
}
利用文件名过滤器对文件名进行查找和处理
new FileTest是获取一个一次性的FileTest的对象。
package Object;
import java.io.File;
import java.io.IOException;
import java.lang.reflect.Field;
import java.sql.Date;
import java.text.SimpleDateFormat;
public class FileProtect {
public static void main(String[] args) {
File file = new File("D:\\");
File[] fs = file.listFiles(new FileTest());//得到file对象数组
for(File f:fs){
System.out.println("当前是图片文件:"+f.getName()+"执行删除"+f.delete());
}
}
public static void main3(String[] args) {
File file = new File("D:\\");
String[] names = file.list(new FileTest());//字符串数组
for(String string :names){
System.out.println(string);
}
}
public static void main2(String[] args) {
File file = new File("D:\\");
File[] fs = file.listFiles();//得到的file对象数组
for(File f:fs){
System.out.println(f);
//System.out.println(f.getName()+"-------->是否是文件:"+f.isFile());//判断当前文件是否为一个文件
//System.out.println(f.getName().endsWith("++") && f.isFile());//以++为结尾的文件
}
}
public static void main1(String[] args) {
File file = new File("D:\\");
String[] names = file.list();//得到的是一个string字符串数组
for (String s:names){
if(s.endsWith("++"))
System.out.println(s);
}
}
}