[java]递归读取目录及其子目录文件
2012-11-07 11:32
525 查看
总是看着别人的代码敲,最近开始自己去写,虽然慢一些,但是思考的和调式的过程可以学到很多的东西。
要从简单功能慢慢扩展到自己想要达到的效果,这是个很好的习惯。。。慢慢积累吧。
package com.java.io; import java.io.File; /** * 读取一个目录下的所有文件和子文件夹 * @author lzz */ public class ReadDirectoryTest { public static void main(String[] args) { String dirName=System.getProperty("user.dir"); //获取classpath的目录 readADir(dirName); System.out.println("------------我是分割线-----------------"); File dir=new File("E:/study"); readdir(dir,""); } /** * 一个目录所在文件夹的所有文件 * @param dirName 当前目录 */ public static void readADir(String dirName){ File dir=new File(dirName); File predir=dir.getParentFile(); //得到这个目录的父目录 System.out.println(predir); //如果要是根目录,或者是逻辑盘的根目录呢,需要考虑下 if(predir.isDirectory()){ File[] fs=predir.listFiles(); //由父目录得到这个目录所在目录的所有文件类型 for(File f:fs){ System.out.println("-"+f.getName()); } } } /** * 给定一个文件,如果是目录,递归的读取所有目录和文件 * @param file 要读取的文件 * @param str 分级标记 */ public static String next="-"; public static void readdir(File file,String str){ //str是给目录分级的标记,这样容易看清楚 if(file.isDirectory()){ //如果是一个目录,那么继续往下读 System.out.println(str+file.getName()); File[] fs=file.listFiles(); //是目录就读出目录列表在判断 for(File f : fs){ String newstr=str+next; //层级加一 readdir(f,newstr); //递归判断 } }else{ System.out.println(str+file.getName()); } } }
ps: 层级标记开始的时候用的是个成员变量,结果打印出来的效果是 –xx ---xx -----xx ,这样就造成同一次调用的时候显示不同的层级关系了,
为了解决这个问题,就用了以参数来使的这个标记str能在同一次方法调用中保持不变 -xx ---xx.. --xx。 这样的效果就对了。输出结果:
E:\workspace-.metadata-CMSweb-commenclasses-demoofRMI-fiveballs-FSHloginTest-FSTTEST-html_css-jfinal_demo-JSFLogin-JSFLoginTest-js_study-Log4j-LoginTest-message_board-proxy_pattern-Servers-seurity_java-study-Threadtest-utils-uums-webstudy-XXMLStudy------------我是分割线-----------------study-dir1--dir2--doc2.txt-doc1.txt第一个方法是说怎么把一个目录下的文件读出来,第二个方法是说在第一个方法上递归就可以这个目录下的目录直到没有目录为止。代码很简单,呵呵,自己做练习的。本文出自 “orangleliu笔记本” 博客,请务必保留此出处http://orangleliu.blog.51cto.com/2554001/1052464
相关文章推荐
- [java]递归读取目录及其子目录文件
- C#递归读取目录里所有文件(包括子目录)及其文件操作
- C#递归读取目录里所有文件(包括子目录)及其文件操作
- 利用递归删除目录及其子目录及文件
- 采用非递归方式遍历目录及其子目录的文件
- .net文件操作:递归读取网站目录及子目录和文件并显示
- java递归读取目录下所有文件的方法
- 用非递归方式遍历目录及其子目录的文件
- 分享下java 读取目录及子目录下指定文件名的路径 并放到一个List数组里面返回遍历和写到文件里
- java字节流和字符流操作文件,指定编码写入和读取,递归创建上层目录
- java 读取目录及子目录下指定文件名的路径 并放到一个List数组里面返回遍历和写到文件里
- 通过java递归思想实现以树形方式展现出该目录中的所有子目录和文件
- java中递归读取目录下的所有文件
- 用非递归方式遍历目录及其子目录的文件
- 通过java递归思想实现以树形方式展现出该目录中的所有子目录和文件
- Java-->用递归方法复制目录、子目录以及文件(文件用到IO流)
- 【转】java 文件 读取目录下的所有文件(包括子目录)
- 非递归方式遍历目录及其子目录的文件
- java拷贝目录及其子目录、文件,到另外一个目录
- java递归读取目录下的所有文件