有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

SVNKit中的java查询

我正在使用SVNKit访问包含二进制文件的存储库。我需要转到存储库中的特定目录,并从中检索文件列表。然后我这样做:(草率的代码)

 Collection<SVNDirEntry> entries=(Collection<SVNDirEntry> repository.getDir(omitted);
 Iterator<SVNDirEntry> it=entries.iterator();
 while(it.hasNext()){
      SVNDirEntry entry=(SVNDirEntry) it.next();
      if(entry.getName().contains("abc")){
           list.add(entry.getName());
      }
 }

大多数目录包含的文件很少,我使用getDir(..)没有问题从SVNRepository,但有一个文件夹有大约10000个文件(或更多),当我尝试这样做时,应用程序就停止了。即使我等了几个小时,也什么也没发生。有没有办法解决这个问题?我并不需要所有的文件,只需要那些文件名中包含特定代码的文件。我可以要求存储库只提供包含“abc”的文件名,以加快速度吗

顺便说一句,我知道这不是使用Subversion的好方法,但我很遗憾地被迫这样做


共 (1) 个答案

  1. # 1 楼答案

    你很可能在你的收藏声明中毁掉了记忆

    使用getDir方法的处理程序版本:

    getDir(String path, long revision, Map properties, ISVNDirEntryHandler handler)
    

    这样,一次只处理一个文件