过滤器:
过滤出后缀为.java的文件(list)
先在list方法里面调用list()存储该目录下所有文件,然后
根据过滤器中的accept方法,过滤出符合条件的名字
publicclass FilterByName implements FilenameFilter {
@Override
publicboolean accept(File dir, String name) {
returnname.endsWith(".java");
}
publicstatic void getJavaFile() {
Filef = new File("D:\\");
String[]name = f.list(new FilterByName());
for(Strings:name){
System.out.println(s);
}
过滤出非隐藏的文件(listFiles() )
publicclass FilterByHidden implements FileFilter {
@Override
publicboolean accept(File pathname) {
return!pathname.isHidden();
}
publicstatic void getNoHidden() {
Filef = new File("D:\\");
File[]name = f.listFiles((new FilterByHidden()));
for(Files:name){
System.out.println(s);
}
根据文件名过滤
publicclass FilterByName implements FilenameFilter {
privateString name1;
FilterByName(Stringname){
this,name1 = name;
}
@Override
publicboolean accept(File dir, String name) {
returnname.endsWith(".name1");
}
深度遍历文件
publicstatic void main(String[] args) {
Filedir = new File("D:\\work");
listAll(dir,0);
}
publicstatic void listAll(File dir, int i) {
i++;
System.out.println(getSpace(i)+dir.getName());
File[]files = dir.listFiles();
for(intj = 0;j<files.length;j++){
if(files[j].isDirectory()){
listAll(files[j],i);
}
else{
System.out.println(getSpace(i)+files[j].getName());
}
}
}
删除一个有内容的目录
publicstatic void deleteF(File dir){
File[]files = dir.listFiles();
for(Filef :files){
if(f.isDirectory()){
deleteF(f);
}
else{
f.delete();
}
}
dir.delete();
}
publicstatic String getSpace(int j) {
StringBuildersb = new StringBuilder();
for(inti = 0;i<j;i++){
sb.append(" ");
}
returnsb.toString();
}