java遍历一个目录中不包括当前目录的其他所有父级目录
2016-09-01 14:12
363 查看
现在有一个功能,需要在一个目录中排除这个目录以外的所有其他目录,把要排除的目录列出来。例如:根目录为/a,不排除的目录是/a/b/c/d,c级目录级c级以上的所有目录和文件都要排除,其中要求不排除目录的所有父级目录都不排除,如本例中/a/b/c不排除,但是/a/b/e则要排除;排除文件有格式要求,例如,排除目录/a/b,则要求加上**/a/b/**,文件则不用加末尾斜杠及两个星号。按照向上遍历的思路,代码如下:
package com.thunisoft.svn; import java.io.File; public class Utils { /** * @param file 当前所在目录被排除的目录 * @param rootFile 根目录 * @return 当前目录不包括被排除的目录 */ public String get(File file,File rootFile){ StringBuffer sb=new StringBuffer(); File[] fileList=file.getParentFile().listFiles(); for(File f:fileList){ if(!f.getPath().equals(file.getPath())){ sb.append("**"+f.getPath().replace(rootFile.getPath(), "").replaceAll("\\\\", "/")); if(f.isDirectory()){//文件夹处理 sb.append("/**"); } sb.append(";"); } } String result=sb.toString(); if(System.getProperties().getProperty("os.name").toLowerCase().startsWith("windows")){ result.replaceAll("//", "/");//处理Windows系统文件路径斜杠问题 } return result; } /** * * @param projectPath 项目目录 * @param rootPath 根目录 * @return */ public String getAll(String projectPath,String rootPath){ StringBuffer sb=new StringBuffer(); File file=new File(projectPath); File rootFile=new File(rootPath); while(!file.getPath().equals(rootFile.getPath())){//遍历目录的父级目录,直到根目录 sb.append(get(file, rootFile)+"\n"); file=file.getParentFile(); } String result=sb.toString(); return result.substring(0, result.length()-2);//去掉末尾分号 } public static void main(String[] args) { Utils u=new Utils(); String rootPath="E:/a/rootPath"; String projectPath="E:/a/rootPath/a/b/c"; System.out.println(u.getAll(projectPath,rootPath)); } }
相关文章推荐
- Java遍历一个目录下的所有文件
- JAVA之File类 获取一个目录下的所有文件夹和文件,包括子文件夹和子文件
- java遍历目录下的包括子目录下的所有文件
- java遍历给定目录,树形结构输出所有文件,包括子目录中的文件
- [置顶] Java遍历一个目录下的所有文件
- java遍历给定目录,树形结构输出所有文件,包括子目录中的文件
- 用Java写一个递归遍历目录下面的所有文件。
- Java遍历一个目录下的所有文件
- java遍历D盘(或者其他盘)目录下所有的.txt文件,并输入文件名。
- Java中遍历一个文件夹下所有文件及目录的操作
- Java遍历一个目录下的所有文件
- java遍历给定目录,树形结构输出所有文件,包括子目录中的文件
- java遍历给定目录,树形结构输出所有文件,包括子目录中的文件
- java遍历目录下的包括子目录下的所有文件
- Java遍历输出指定目录、树形结构所有文件包括子目录下的文件
- java遍历给定目录,树形结构输出所有文件,包括子目录中的文件
- JAVA之File类 获取一个目录下的所有文件夹和文件,包括子文件夹和子文件
- JS如何遍历一个文件夹下的所有文件与目录
- 将当前目录下所有.bz2的文件解压并合并成一个文件的Shell script
- 命令打包一个站点 包括其所有目录文件