精华内容
下载资源
问答
  • Java递归遍历文件夹

    2021-03-09 02:59:32
    下面是编程之家 jb51.cc 通过网络收集整理的代码片段。...@H_502_5@ import java.io.File;public class Test {/*** @param args* @author itmyhome*/public static void main(String[] args) {File f = new File("...

    下面是编程之家 jb51.cc 通过网络收集整理的代码片段。

    编程之家小编现在分享给大家,也给大家做个参考。

    @H_502_5@ import java.io.File;

    public class Test {

    /**

    * @param args

    * @author itmyhome

    */

    public static void main(String[] args) {

    File f = new File("F:/javaAPI/JavaAPI1.6/java/awt");

    printFile(f,0);

    }

    public static void printFile(File f,int len) {

    String str = "";

    for (int i = 0; i < len; i++) {

    str += " "; // 路径空格,以便更好的展现层次结构

    }

    File file[] = f.listFiles();

    for (int i = 0; i < file.length; i++) {

    System.out.println(str + file[i].getName());

    if (file[i].isDirectory()) {

    printFile(file[i],len + 1);

    }

    }

    }

    }

    以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

    如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

    相关文章

    总结

    以上是编程之家为你收集整理的Java递归遍历文件夹全部内容,希望文章能够帮你解决Java递归遍历文件夹所遇到的程序开发问题。

    如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

    本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

    如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

    展开全文
  • 本篇文章主要介绍了JAVA 遍历文件夹下的所有文件(递归调用和非递归调用) ,具有一定的参考价值,有兴趣的可以了解一下。
  • java实习三2代码查重 相似度)递归遍历文件夹,写文本操作。 一、遍历文件夹代码模板 确定文件夹中是否存在给定文件,如果有该文件,控制台输出文件数目和路径。 import java.io.File; public class lll { static...

    (java实习三2 代码查重)递归遍历文件夹,写文件操作,读文件操作。

    一、遍历文件夹 代码模板

    递归遍历给定文件夹,寻找指定文件名文件。如果有该文件,控制台输出文件数目和路径。

    import java.io.File;
    public class lll {
    	static File floder = new File("D:\\Demos\\EclipseDemo");   //文件夹路径 
    	static String filename = "Test1.java";
    	static int num = 0;
    	public static void main(String[] args) {
    		if(!floder.isDirectory())
    		{
    			System.out.print("请输入文件夹的正确路径");  
    		}
    		else{			
    			File[]files = floder.listFiles();		
    			for (File f:files) {		
    				getFile(f,filename);        
    			}				
    		}
    		if(num==0) {
    			System.out.print("不存在"+filename+"文件"+"\r\n");
    		}
    		else{
    			System.out.print(filename+"文件数量为:"+num+"\r\n");
    		}
    	}
    	public static void getFile(File f,String str) {		 
    		if(f.isDirectory()){    //如果还存在子目录则继续读取
    			File[]subfiles = f.listFiles();
    			for(File fi:subfiles){
    				getFile(fi,str);
    			}
    		}
    		else{		
    			if(f.getName().equals(str)) { 
    				System.out.print(f.getName()); 
    				System.out.print("\n");  
    				getData(f);
    			}
    		}
    	}
    	public static void getData(File f) {		
    		num++;
    		System.out.print(f.getPath()+"\n");  
    	}
    }
    

    输出结果:
    在这里插入图片描述

    二、写txt文件

    递归遍历给定文件夹,寻找指定文件名和文件类型文件。结果新建txt文件写入该文件夹中。输出结果为给定文件类型文件的文件名和数量、给定文件名文件的路径,后者为了在输出结果中显眼加上tab。

    import java.io.File;
    import java.io.FileWriter;
    import java.io.IOException;
    
    public class hhh {
    	static File floder = new File("D:\\Demos\\EclipseDemo");   //文件夹路径  "C:\\Users\\Administrator\\Desktop\\test"
    	static FileWriter fw = null;             //写文件 txt
    	static String filename = "Test1.java";
    	static String filetype = ".java";
    	static int num1 = 0;
    	static int num2 = 0;
    	
    	public static void main(String[] args) {
    		try {
    			fw = new FileWriter(floder.getPath() + "/" + "Summary.txt");   
    			if(!floder.isDirectory())
    			{
    				System.out.print("请输入文件夹的正确路径");  
    			}
    			else{			
    				File[]files = floder.listFiles();		
    				for (File f:files) {		
    					getFile(f,filename,filetype);        
    				}				
    			}	
    			if(num1==0) {
    				fw.write("不存在"+filename+"文件"+"\r\n");
    			}
    			else{
    				fw.write(filename+"文件数量为:"+num1+"\r\n");
    			}
    		
    			if(num2==0) {
    				fw.write("不存在"+filetype+"类型文件"+"\r\n");
    			}
    			else{
    				fw.write(filetype+"文件数量为:"+num2);
    			}			
    			fw.flush();
    	   		fw.close();    		  		
    		}catch (Exception e) {
    	    	e.printStackTrace();
    	    }		
    	}
    	public static void getFile(File f,String str,String str2) {		 
    		if(f.isDirectory()){    //如果还存在子目录则继续读取
    			File[]subfiles = f.listFiles();
    			for(File fi:subfiles){
    				getFile(fi,str,str2);
    			}
    		}
    		else{		
    			if(f.getName().equals(str)) {  
    				System.out.print(f.getName()); 
    				System.out.print("\n");  
    				getData(f);
    			}					
    			if(f.getName().indexOf(str2)>0 ) {  
    				System.out.print(f.getName()); 
    				System.out.print("\n");  
    				getData2(f);
    			}
    		}
    	}
    	public static void getData(File f) {		
    		try {
    			fw.write("\r\t"+f.getName()+" : ");
    			fw.write(f.getPath().substring(floder.getPath().length()+1)+"\r\n");
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    		num1++;
    	}	
    	public static void getData2(File f) {		
    		num2++;	
    		try{
    			fw.write(f.getName());
    			fw.write("\r\n");
    		}catch (Exception e) {
        		e.printStackTrace();
        	}	
    	}
    }
    
    

    输出结果:
    在这里插入图片描述
    在这里插入图片描述

    三、读txt文件

    统计一下带子文件夹的文件夹里 屯的小说的字数
    在这里插入图片描述

    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    public class WordCount {
    	static FileWriter fw = null;
    	
    	public static void main(String[] args)throws FileNotFoundException,IOException {
    		File f = new File("D:\\All\\novel");    //          C:\\Users\\Administrator\\Desktop\\test
    		fw = new FileWriter(f.getPath() + "/" + "字数统计.txt");  
    		fw.write("文件名" + "\t\t\t"+"总字数" + "\t" + "汉字加标点"+ "\t" +"\r\n");		
    		System.out.print("统计中"+"\r\n");  
    		getFile(f,".txt");	
    		fw.flush();
    	   	fw.close();
    	   	System.out.print("统计结束");  
    	}
    
    	public static void getFile(File f,String str)throws FileNotFoundException,IOException  {		 
    		if(f.isDirectory()){    //如果还存在子目录则继续读取
    			File[]subfiles = f.listFiles();
    			for(File fi:subfiles){
    				getFile(fi,str);
    			}
    		}
    		else{		
    			if(f.getName().indexOf(str)>0) {  
    				CountNum(f);
    			}				
    		}
    	}
    		
    	static int num = 0;
    	public static void CountNum(File f)throws FileNotFoundException,IOException {
    		num++;
    		System.out.print("统计第"+num+"个文件"+"\r\n");  
    		BufferedReader br = null;
    		br = new BufferedReader(new FileReader(f));
    		String tempstr; //临时字符串
    		int num1 = 0; 	//总汉字数
    		int num2 = 0; 	//汉字+标点	
    		Pattern pattern =  Pattern.compile("([\u4e00-\u9fa5]{1})"); //纯汉字
    		Pattern pattern2 = Pattern.compile("([\u4e00-\u9fa5,,.。、/<>??;;'‘’“”:\"【】{}]{1})"); // 汉字或标点符号   这样双引号算两个标点了		
    		while((tempstr = br.readLine()) != null && tempstr != ""){
    			//汉字
    			Matcher matcher = pattern.matcher(tempstr);
    			while(matcher.find()) num1++;	
    			//汉字加标点
    			Matcher matcher2 = pattern2.matcher(tempstr);
    			while(matcher2.find()) num2++;
    
    			tempstr = "";
    		}			
    		br.close();		
    		fw.write(f.getName()+"\t"+num1+"\t"+num2+"\t"+"\r\n");
    	}
    }
    
    

    在这里插入图片描述
    在这里插入图片描述
    好像还不算实用。
    后面发现的问题就是好像没有关闭文件夹。

    展开全文
  • 话不多说,直接上代码 import java.io.File; public class file { public static void main(String[] args){ ... //使用递归遍历文件夹及子文件夹中文件 public static void filesDirs(File file){ //Fil...

    话不多说,直接上代码


    import java.io.File;

    public class file {
        public static void main(String[] args){
            File file=new File("C:/HWKJ/file");
            filesDirs(file);
        }
        //使用递归遍历文件夹及子文件夹中文件
        public static void filesDirs(File file){
            //File对象是文件或文件夹的路径,第一层判断路径是否为空
            if(file!=null){
                //第二层路径不为空,判断是文件夹还是文件
                if(file.isDirectory()){
                    //进入这里说明为文件夹,此时需要获得当前文件夹下所有文件,包括目录
                    File[] files=file.listFiles();//注意:这里只能用listFiles(),不能使用list()
                    //files下的所有内容,可能是文件夹,也可能是文件,那么需要一个个去判断是文件还是文件夹,这个判断过程就是这里封装的方法
                    //因此可以调用自己来判断,实现递归
                    for (File flies2:files) {
                        filesDirs(flies2);
                    }
                }else{
                    System.out.println("文件名字"+file);
                }
            }else{
                System.out.println("文件不存在");
            }


        }
    }

    展开全文
  • java遍历文件夹下所有文件,java按照要求遍历文件夹下所有文件,java获取目录下的指定类型文件,java按文件类型获取文件

    遍历文件夹下所有文件

    遍历文件

    mian方法

    public static void main(String[] args) throws IOException {
    	File path = new File("D:\\test");
        //筛选文件夹下所有sql和xls文件
    	File[] files = FileUtils.getFiles(path,"xls","sql");
    	//输出文件地址
        for (File file : files) {
    		System.out.println(file.getCanonicalPath());
        }
    }
    

    getFiles方法

    import java.io.File;
    import java.util.ArrayList;
    import java.util.List;
    
    public class FileUtils {
    
        //存放符合规定的文件
        private static final List<File> fileArrayList = new ArrayList<>();
        /**
         * 获取文件夹下所有的文件 , ext参数可选
         * @param file 文件夹路径
         * @param ext 文件格式 , 可变参数 , 不写将获取文件夹下所有文件
         * @return 返回符合要求文件的File数组
         */
        public static File[] getFiles(File file , String... ext){
            //lambda表达式 , FilenameFilter
            //将当前目录下的所有文件和文件夹都添加到files中
            File[] files =file.listFiles((dir, name) -> {
                //如果文件夹返回true
                if(new File(dir, name).isDirectory()) {
                    return true;
                }
                //如果指定了文件类型 , 进行文件筛选
                if (ext!=null&&ext.length>0) {
                    for (String s : ext) {
                        //如果文件符合规则 , 返回true
                        if (name.toLowerCase().endsWith(s.toLowerCase())) {
                            return true;
                        }
                    }
                }else {
                    //没有规定文件类型 , 所有文件都返回true
                    return true;
                }
                return false;
            });
            //如果files不为null , 遍历files . 如果files为null , 遍历空数组.
            for (File f : files!=null? files : new File[0]) {
                //如果f不是文件夹 , 添加到指定list中
                if (!f.isDirectory()) {
                    fileArrayList.add(f);
                    continue;
                }
                // f 是文件夹 递归
                // 如果对文件格式有要求 ,直接把方法中的ext参数填进去
                // 如果没有要求,写不写都行
                getFiles(f,ext);
            }
            //将list转换成File数组并进行返回
            return fileArrayList.toArray(new File[0]);
        }
    }
    

    测试效果
    测试结果

    展开全文
  • 递归遍历某个路径下的所有文件,找到以某个指定或某类文件,输出其路径,以遍历F盘查找java文件(.java结尾)为例,进行讨论 2.普通实现         最简单的实现就是直接使用...
  • import java.io.File;public class Test {/*** @param args* @author www.itxm.cn*/public static void main(String[] args) {File f = new File("F:/javaAPI/JavaAPI1.6/java/awt");printFile(f, 0);}public static...
  • JAVA递归遍历文件夹

    2020-09-30 14:50:09
    public static void main... //填入需要匹配的文件夹 File file=new File("E:\\demo"); //调用方法 matchesFile(file); } public static void matchesFile(File file) throws IOException { //判断文件类...
  • java遍历文件夹下所有文件 public class Test { public static void main(String [] args) { traverseFolder("D:/eclipse/eclipseWorkspace/fileupload/scheme1/"); } public static void t...
  • public class ListFile { public static void ... getFiles("C:\\Users\\86187\\Desktop\\JAVA-testproject\\Annotation\\src\\org\\lq"); } public static void getFiles(String path) { // 1、创建File对象 ..
  • import java.io.File; public class IterateFilesExample2 { public static void scanDir(String path) throws Exception { File currentDir = new File(path); if (currentDir.isFile()) { System.out....
  • Java递归遍历文件夹

    2021-09-12 17:06:46
    递归遍历文件夹的思路: 若当前路径表示的为文件,则对文件进行相应操作; 若当前路径表示的为文件夹,则继续调用自身方法(递归思想)。 递归遍历文件夹的缺点: 若文件夹层级很深,会导致栈溢出。 非递归遍历...
  • public static void main(String[] args) { File file=new File("C://Users//52535//Desktop//周报//cloud1三月二十九");... } } } //复习递归: 1,自己调用自己 2,有明确出口() if (files==null){ return; }
  • 本文提供一份递归遍历目录获取所有文件及目录的源代码:import java.io.File;import java.util.ArrayList;import java.util.List;/*** Created by Administrator on 2019/2/10.*/public class TestWalkDir {static ...
  • @EntityScan @Data @Builder public class DepartmentList ... private java.util.List<DepartmentList> child; } /** * @author gmy * @version 1.0 * @date 2021/7/23 15:15 */ @Service @AllArgsCons...
  • 文章目录一、递归遍历文件夹代码详解二、写纯文本文件(Mac的文本编辑)代码详解 一、递归遍历文件夹代码详解 package com.wzy.file_; import java.io.File; /** * 递归遍历给定文件夹,寻找指定文件名文件。 * ...
  • 递归遍历文件夹: public static void main(String[] args) {  getFile(new File("D:\\eclipsevaadinxu\\works\\test"));  }  /**  * @author admin  * @param file  * 递归遍历文件夹  */  ...
  • 递归实现遍历目录下子所有目录内所有文件
  • java递归遍历文件夹

    2019-11-13 13:41:26
    提到文件夹遍历,首先想到的就是递归,若找到文件,则对文件进行相应的操作。若为文件夹,则继续调用自身方法。 但递归调用存在一个问题,若文件的层级过深,有可能会引发栈溢出(具体栈溢出的相关知识可自行百度...
  • JAVA 遍历文件夹下的所有文件(递归调用和非递归调用) 1、为了方便使用,已经封装成了一个工具FileUtil package com.chen.ftpclient.utils; import java.io.File; import java.util.ArrayList; import java.util....
  • package ...import java.io.File;import java.io.IOException;import java.util.ArrayList;public class GetFiles {// 存储文件列表private ArrayList fileList = new ArrayList<>();public...
  • import java.io.File; import java.util.Arrays; /** * 输出子孙级目录|文件的名称(绝对路径) ... * 2、递归 * * static listRoots() 根路径 * @author Administrator * */ public class Demo05 { /** ...
  • 这篇文章主要介绍了Java递归遍历文件目录代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下在读取文件降序输出单词及其个数的基础上,将txt文件存入...
  • java 的文件操作,相对来说是比较重要的,无论是编写CS还是BS程序,都避免不了要与文件打交道,例如读写配置文件等。虽然现在很多框架都直接帮你做好了这一步!java.io.File 底层是调用与c语言接的接口,所以我们...
  • java遍历文件夹的两种办法:A. 不使用递归import java.io.File;import java.util.LinkedList;public class FileSystem {public static void main(String[] args) {long a = System.currentTimeMillis();LinkedList ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,726
精华内容 7,890
关键字:

java递归遍历文件夹

java 订阅