public static void moveUpOneFolder(Path parent) {
try (DirectoryStream<Path> ds1 = Files.newDirectoryStream(parent)) {
for (Path p1 : ds1) {
//if this node is a dir, traverse its content
if (Files.isDirectory(p1)) {
moveUpOneFolder(p1);
}
Files.delete(p1);
}
e.printStackTrace();
}
try (DirectoryStream<Path> ds1 = Files.newDirectoryStream(parent)) {
for (Path p1 : ds1) {
//this node must be a file. move it up one level
Path newFileName = parent.getParent().resolve(p1.getName(p1.getNameCount() - 2) + "_" + p1.getFileName());
Files.move(p1, newFileName);
Files.delete(p1);
}
e.printStackTrace();
}
}
cHVibGljIHN0YXRpYyB2b2lkIG1vdmVVcE9uZUZvbGRlcihQYXRoIHBhcmVudCkgewoKICAgIHRyeSAoRGlyZWN0b3J5U3RyZWFtPFBhdGg+IGRzMSA9IEZpbGVzLm5ld0RpcmVjdG9yeVN0cmVhbShwYXJlbnQpKSB7CiAgICAgICAgZm9yIChQYXRoIHAxIDogZHMxKSB7CiAgICAgICAgICAgIC8vaWYgdGhpcyBub2RlIGlzIGEgZGlyLCB0cmF2ZXJzZSBpdHMgY29udGVudAogICAgICAgICAgICBpZiAoRmlsZXMuaXNEaXJlY3RvcnkocDEpKSB7CiAgICAgICAgICAgICAgICBtb3ZlVXBPbmVGb2xkZXIocDEpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIEZpbGVzLmRlbGV0ZShwMSk7CiAgICAgICAgfQogICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgewogICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CiAgICB9CiAgICB0cnkgKERpcmVjdG9yeVN0cmVhbTxQYXRoPiBkczEgPSBGaWxlcy5uZXdEaXJlY3RvcnlTdHJlYW0ocGFyZW50KSkgewogICAgICAgIGZvciAoUGF0aCBwMSA6IGRzMSkgewogICAgICAgICAgICAvL3RoaXMgbm9kZSBtdXN0IGJlIGEgZmlsZS4gbW92ZSBpdCB1cCBvbmUgbGV2ZWwKICAgICAgICAgICAgUGF0aCBuZXdGaWxlTmFtZSA9IHBhcmVudC5nZXRQYXJlbnQoKS5yZXNvbHZlKHAxLmdldE5hbWUocDEuZ2V0TmFtZUNvdW50KCkgLSAyKSArICJfIiArIHAxLmdldEZpbGVOYW1lKCkpOwogICAgICAgICAgICBGaWxlcy5tb3ZlKHAxLCBuZXdGaWxlTmFtZSk7CiAgICAgICAgICAgIEZpbGVzLmRlbGV0ZShwMSk7CiAgICAgICAgfQoKICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKICAgICAgICBlLnByaW50U3RhY2tUcmFjZSgpOwogICAgfQp9