根据一个文件路径打印文件下所有的子文件夹和文件(包括子文件夹下的文件夹和文件)如果路径指向一个文件则打印该文件名如果路径指向不存在的文件则打印:NO FILE ...

根据一个文件路径打印文件下所有的子文件夹和文件(包括子文件夹下的文件夹和文件)

 

import java.io.*;
/**
 
  给定一个文件路径,打印以下内容: 
  如果路径指向一个文件夹则打印该文件夹下所有的子文件夹和文件(包括子文件夹下的文件夹和文件) 
  如果路径指向一个文件则打印该文件名 
  如果路径指向不存在的文件则打印:”(NO FILE)” 
*方法创建思路:1.在一个类中创建一个方法:
*    第一、得到文件的抽象路径
*    第二、判断路径是否准确,否则打印 NO FILE
*    第三、路径正确,判断是否为文件,如果为文件,则打印文件名
*    第四、路径不是文件名则判断是否为文件夹名称,如果为文件夹,调用递归方法打印文件夹中所有文件夹及文件
*/
public class ListFileRecursion{

    public static void listFile(String filePath){
        try{
        	//1.得到文件的抽象路径
	        File file = new File(filePath);
	        //2.判断路径是否准确
	    	if(file.exists()){
	        	//3.如果路径指向一个文件则打印该文件名 
	        	if(file.isFile()){
	            	System.out.println(file.getName());
	            //4.如果路径指向一个文件夹则打印该文件夹下所有的子文件夹和文件
	            }else if(file.isDirectory()){
	            	System.out.println(file.toString());
	            	File[] fileArray = file.listFiles();
	            	//打印文件夹下文件数量
	            	//System.out.println(" includes "+ fileArray.length +" files/folders directly.");
	            	    //递归打印文件夹下所有文件
	            	    for(File subFile : fileArray){
	            		    listFile(subFile.toString());
	            	    }
	            }
	        }else if(!file.isDirectory()){
	        	//如果路径指向一个文件,则打印文件名
	        	System.out.println(file.toString());
	        }else{
	        	//如果路径指向不存在的文件则打印:”(NO FILE)”
	        	System.out.println("NO FILE");
	        }        
    	
        }catch(Exception e){
        	e.printStackTrace();
        }
   }
   
   public static void main(String args[]){
	   //在路径中如果用单斜杠‘\’,java中会认为是转义字符,所以在路径上全部加双斜杠‘\\’。
       listFile("C:\\oracle");
       
   }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值