zkclient icon indicating copy to clipboard operation
zkclient copied to clipboard

deleteRecursive 在删除根目录“/”时会遇到问题

Open hub8848 opened this issue 9 years ago • 2 comments

ZkClient类中调用deleteRecursive函数删除根目录会出现问题: like this: ZkClient zkClient = new ZkClient("localhost:2181"); zkClient.deleteRecursive("/");//will error

修改代码如下也许会解决问题: public boolean deleteRecursive(String path) { if (path.equals("/zookeeper/quota") || path.equals("/zookeeper") || path.equals("/")) { return true; } List<String> children; try { children = getChildren(path, false); } catch (ZkNoNodeException e) { return true; } String finalPath = path; for (String subPath : children) { if (!path.equals("/")) { finalPath = path + "/" + subPath; } else { finalPath = path + subPath; } if (!deleteRecursive(finalPath)) { return false; } } return delete(path); }

hub8848 avatar Dec 12 '16 09:12 hub8848

既然如此危险,还是建议不要在根目录/下操作好了。

现代Unix/Linux已经不允许在rm -fr / 了。

adyliu avatar Dec 12 '16 09:12 adyliu

毕竟是问题,还请owner修正!

hub8848 avatar Dec 12 '16 12:12 hub8848