读取显示当前目录下的文件及目录-java io

本文介绍了一个简单的Java程序,用于列出指定目录下的所有文件及子目录,并统计目录数量。程序通过递归方式遍历文件夹,同时记录不可访问的文件。

很简单的一个需求,要求读取当前目录下所有的文件和目录,并显示出来。将实现记录下来,以备需要时参考。

下面时具体的实现

 

/**
 * 读取当前目录下的文件路径
 *  
 * @author 
 * @since jdk1.4.2
 * @version 1.0
 * @date 2007-06-30
 * 
 */
public class ViewDirsAndFiles {
    private static String listFileStr = "";
    private static int dirNumber = 0;
    private static int fileNumber = 0;
	
    private static String dirNumberString = "** 当前目录下的目录数:";
		
    public static void main(String[] args) {
        try{
            File saveFile = new File(args[1]);
            FileWriter fw = new FileWriter(saveFile);
			
            ViewDirsAndFiles lf = new ViewDirsAndFiles();
            lf.listFile(args[0]);
			
            String dirNumberLine = dirNumberString += dirNumber + "\r\n";
            String allWriterContent = dirNumberLine + listFileStr;
			
            //String fileNumberLine = fileNumberString += fileNumber + "\r\n\r\n";
           //String allWriterContent = dirNumberLine + fileNumberLine + listFileStr;
			
           fw.write(allWriterContent);
           fw.close();
			
           System.out.print("\r\n" + dirNumberLine);
           //System.out.print(fileNumberLine);
			
    }catch (ArrayIndexOutOfBoundsException aiobe) {
        //参数提示
     //System.out.println("## Usage: ListFiles <source dir> <target file>");
        System.out.println("## 用法: java  org.snailheart.util.ViewDirsAndFiles " +"<当前目录> <目标文件>");
			
    }catch (IOException ioe) {
        System.out.println("## IO error!\r\n" + ioe.toString());
    }
}
	
    /**
     * 获取目录下的所有文件的绝对路径
   * @param currDir	要查询的目录名
   */
    public void listFile(String currDir) {
        File file = new File(currDir);
        File[] list = file.listFiles();
		
        for(int i = 0;i < list.length;i++) {
	try{ 
	    if (list[i].isDirectory()){	//是否是目录
	       new ViewDirsAndFiles().listFile(list[i].toString());
					dirNumber++;
				
	    }else {
	        listFileStr += list[i].getAbsolutePath() + "\r\n";
	        //System.out.println(list[i].getAbsolutePath());
				
	       fileNumber++;
				}
	}catch (Exception ex) {
	    listFileStr += "Access deny:" + list[i].getAbsolutePath() + "\r\n";
	    System.out.println("Access deny:" + list[i].getAbsolutePath());
	}
        }		
    }

}

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值