File应用

来源:互联网 发布:日本硕士 知乎 编辑:程序博客网 时间:2024/05/21 09:43


过滤器:

         过滤出后缀为.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();

                           

                   }

 

原创粉丝点击