package p.file.demo;
import java.io.File;
import p.filter.FilterByHidden;
import p.filter.FilterByname;
import p.filter.SuffixFileter;
public class FileListDemo {
public static void main(String[] args) {
listDemo_2();
}
private static void listDemo_3() {
File dir=new File("c:\\");
File[ ]files=dir.listFiles(new FilterByHidden());//根据是否隐藏过滤
for(File file:files) {
System.out.println(file);
}
}
private static void listDemo_2() {
File dir=new File("d:\\");
String []names=dir.list(new FilterByname());//根据名称过滤
for(String name:names) {
System.out.println(name);
}
}
private static void listDemo_4() {
File dir=new File("d:\\");
String []names=dir.list(new SuffixFileter(".txt"));//自己传参的根据名称过滤
for(String name:names) {
System.out.println(name);
}
}
private static void listDemo() {
File file=new File("d:\\3.mp3");
/*
* 获取当前目录下的文件以及文件夹的名称 包含隐藏名称
* 调用list方法中的对象中封装的必须是目录、
* 否则会发生NullPointerException
* 如果访问的系统级目录也会发生空指针异常
*
* 如果目录存在但是没有内容 会返回一个数组 但是长度为0
*/
String[] names=file.list();
for(String name:names) {
System.out.println(name);
}
}
}
package p.filter;
import java.io.File;
import java.io.FilenameFilter;
public class SuffixFileter implements FilenameFilter {
private String suffix;
public SuffixFileter(String suffix) {
super();
this.suffix=suffix;
// TODO Auto-generated constructor stub
}
@Override
public boolean accept(File dir, String name) {
return name.endsWith(suffix);
}
}
package p.filter;
import java.io.File;
import java.io.FileFilter;
public class FilterByHidden implements FileFilter {
@Override
public boolean accept(File pathname) {
return !(pathname.isHidden());
}
}
package p.filter;
import java.io.File;
import java.io.FilenameFilter;
public class FilterByname implements FilenameFilter {
@Override
public boolean accept(File dir, String name) {
return name.endsWith(".txt");
}
}