现在有一个功能,需要在一个目录中排除这个目录以外的所有其他目录,把要排除的目录列出来。例如:根目录为/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(), "").replace("\\\\", "/"));
if(f.isDirectory()){//文件夹处理
sb.append("/**");
}
sb.append(";");
}
}
String result=sb.toString();
if(System.getProperties().getProperty("os.name").toLowerCase().startsWith("windows")){
result.replace("//", "/");//处理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中,同样需要创建一个新的`File`对象,其路径为当前目录的父路径,然后更新为当前目录。 5. **创建目录(md)**: `md`命令用于创建新目录。在Java中,可以使用`java.io.File`的`mkdir()`或`mkdirs()`方法。`...
根据当前节点获取所有父节点信息(18代)SQL根据当前节点递归遍历获取所有父节点信息,短短的SQL可以解决复杂的问题
否则,遍历当前节点的所有子节点,对每个子节点进行递归查找。如果在子节点中找到目标节点,返回该节点,否则继续查找。 **三、反向查找** 反向查找,或称自顶向下查找,是从根节点开始,逐级向下查找目标节点。它...
标题中的“根据子节点的金额向上汇总所有父节点的金额”是一个典型的树形结构数据处理问题,常见于组织架构、账目统计或者数据库层次结构的数据分析。这个问题涉及到的知识点包括但不限于: 1. **树形结构**:在...
"Ztree利用getNodesByFilter进行js搜索 搜索父级隐藏"这一主题涉及到在ZTree中实现高级搜索功能,特别是当需要隐藏不符合条件的父级节点时。通常,ZTree展示的数据结构是一个层次化的树形结构,每个节点可能包含子...
在这个代码片段中,我们遍历所有的组,如果当前点击的组不是正在检查的组并且该组已经展开,我们就收缩它。然后,我们展开刚刚点击的组。 以上就是关于“ExpandableListView解决子级背景色混乱和父级展开项唯一效果...
最后,所有收集到的信息被封装进一个`MonitorInfoBean`对象中,这个对象包含了总的线程数和CPU占用率。这种设计使得数据的传递和处理更加结构化,便于进一步的分析和显示。 ### 总结 使用Java获取CPU占用率的过程...
4. `mkdirs()`:创建一个目录和所有必要的父级目录,返回布尔值,表示是否成功创建。 5. `renameTo()`:重命名文件或目录,返回布尔值,表示是否成功重命名。 三、遍历目录 1. 使用`list()`或`listFiles()`方法...
在Java编程语言中,反射(Reflection)是一种强大的工具,它允许程序在运行时检查和操作对象的内部结构,包括类的属性、方法以及构造器。本文将深入探讨如何使用反射来获取父类中的所有属性和方法,这对于理解和调试...
- 读取Cookie时,只能读取当前路径及直接父路径的Cookie,不能跨多个父级路径读取。 - 删除Cookie时,如果没有在当前路径找到,会向上遍历父路径,直到找到并删除匹配的Cookie。 3. **JavaScript中的Cookie操作**...
在C#或Java等支持递归的语言中,你可以编写一个函数,接收当前节点,并查找其所有子节点,然后对每个子节点执行相同的操作,直到遍历完整个数据集。 3. **创建树节点**:一旦获取了数据,就需要将这些数据转化为...
这里使用了一个名为`Menu`的实体类,它包含了菜单的基本属性,如菜单名称、顺序、路径、父级ID以及菜单图标。此外,为了表示菜单间的父子关系,我们还添加了一个`List<Menu>`类型的`children`属性,这个属性是`@...
例如,在本案例中,当删除一个“父评论”时,发现其下的“子评论”也会被一同删除,导致数据丢失,用户体验受损。 #### 二、数据库设计中的外键约束 数据库中的表间关联通常通过“外键”实现。在外键约束中,有一个...
在JavaScript中,如果需要获取一个元素的父级、父级的父级,可以连续调用`parentNode`。示例代码中的`CheckBoxAll()`函数展示了如何获取点击按钮的上级元素。首先,`e.parentNode`获取到了直接父元素,接着`e....
在实际应用中,例如组织结构的展示,我们可以创建一个包含部门信息的表`SYS_DEPT`,其中`dept_id`为主键,`par_dept_id`表示父级部门ID,以此建立层级关系。通过递归查询,我们可以轻松地获取任意部门及其所有子部门...
联合查询是将一个或多个表、一个或多个查询的字段组合作为查询结果中的一个字段,执行此查询时,将返回所包含的表或查询中对应字段的记录。 #### JavaApplication实例 12. 在Java中,可以通过命令行参数传递信息给...
请求的参数通常包括当前选中的父级ID,以便服务器知道应该返回哪些子级数据。 3. **数据处理**:服务器返回的数据通常为JSON格式,前端接收到数据后需要解析并填充到下级选择框中。可以使用`$.each()`遍历数组并...
适配器需要根据当前父级的选择动态更新下一级别的下拉列表。 3. 监听器:设置监听器(OnClickListener或OnItemSelectedListener)来捕获用户的选择事件。当用户在某个级别选择一项时,触发事件,更新下一级别的...
在作用域链中查找变量时,会从当前作用域开始,如果找不到,则向上遍历作用域链。 6. **闭包**: 闭包是一种特性,它允许函数访问并操作其外部作用域的变量,即使该函数在其外部作用域已经被销毁。闭包在内存管理...