我有一些我无法弄清楚的问题。我正在使用简单模型实现的目录来模拟文件系统Directory.java
public class Directory {
public Directory(String name, List<Directory> directory) {
this.name = name;
this.directory = directory;
}
private String name;
private List<Directory> directory;
我的问题是我必须将新目录添加到具有指定路径的现有目录中(例如 test/test2/newdir)。我试图使用递归,但它并没有解决我的问题,因为当我更改目标目录时,root 保持不变。有人可以帮帮我吗?
翁德雷
编辑:我的递归方法
private static Directory _digIn(Directory dir, List<String> path, int depth) {
if (depth < path.size()) {
if (dir.getDirectory() != null) {
for (Directory d : dir.getDirectory()) {
if (d.getName().equalsIgnoreCase(path.get(depth))) {
return _digIn(d, path, ++depth);
}
}
}
} else {
return dir;
}
return null;
}
此方法返回我所需的目录,我可以向其中添加新目录,但此更改不会反映在根目录中。
EDIT2:我的插入方法
public static void insertNewObject(Directory dirToSave, List<String> path) {
Root root = getRoot(xmlFile);
Directory dir = _digIn(root.toDir(), path, 0);
if (dir.getDirectory() != null) {
dir.getDirectory().add(dirToSave);
} else {
List<Directory> dirList = new ArrayList<>();
dirList.add(dirToSave);
dir.setDirectory(dirList);
}
}