public void listDirectoryNode(SVNRepository repository, String dirUrl, FileNode node) { String currentPath = ""; List list = new ArrayList(); Collection root; try { String finalPath[] = dirUrl.split("/"); for (int i = 5; i < finalPath.length; i++) { currentPath += finalPath[i] + "/"; } root = repository.getDir(currentPath, -1, null, (Collection) null); Iterator iterator = root.iterator(); while (iterator.hasNext()) { SVNDirEntry entry = (SVNDirEntry) iterator.next(); if (entry.getKind() == SVNNodeKind.DIR) { FileNode subDirNode = new FileNode(entry.getName(), entry .getURL().toDecodedString(), entry.getRevision(), entry.getAuthor(), entry.getSize(), entry.getDate(), null, entry.getKind()); listDirectoryNode(repository, entry.getURL().toDecodedString(), subDirNode); list.add(subDirNode); } } } catch (SVNException e) { // TODO Auto-generated catch block e.printStackTrace(); } node.setChildren(list); }
在entry.getURL().toString();的时候,当地址是以http://开头的话会出现乱码。原因是http的安全地址机制,这样写的话就没有问题了:entry.getURL().toDecodedString();
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步