java - 如何在svn中查找文件夹内的文件数

标签 java svn rabbitvcs

我想找到 svn 内的文件数量。我知道如何检查它是文件还是目录。

       try {
            nodeKind = repository.checkPath("", -1);
        } catch (SVNException ex) {
            Logger.getLogger(Reassignscreen.class.getName()).log(Level.SEVERE, null, ex);
        }
        if (nodeKind == SVNNodeKind.NONE) {
            System.err.println("There is no entry at '" + url + "'.");
            commitClient.doMkDir(new SVNURL[]{SVNURL.parseURIDecoded(url)}, "New Folder");
        }

像这样,有什么方法可以检索 svn 内的文件数量。

最佳答案

使用此代码会对您有所帮助,

public class DisplayRepositoryList{

static int xmlfilecount = 0;
static ArrayList<String> imagefoldercheck = new ArrayList<String>();

public static void displayrepositorytree(String url, String name, String password) {
    xmlfilecount =0;
    SVNSetupLibrary.setupLibrary();
    SVNRepository repository = null;
    try {
        repository = SVNRepositoryFactory.create(SVNURL.parseURIEncoded(url));
    } catch (SVNException svne) {
        System.err.println("error while creating an SVNRepository for location '" + url + "': " + svne.getMessage());
     //   System.exit(1);
    }

    ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager(name, password);
    repository.setAuthenticationManager(authManager);

    try {
        SVNNodeKind nodeKind = repository.checkPath("", -1);
        if (nodeKind == SVNNodeKind.NONE) {
            System.err.println("There is no entry at '" + url + "'.");
          //  System.exit(1);
        } else if (nodeKind == SVNNodeKind.FILE) {
            System.err.println("The entry at '" + url + "' is a file while a directory was expected.");
         //   System.exit(1);
        }
        System.out.println("Repository Root: " + repository.getRepositoryRoot(true));
        System.out.println("Repository UUID: " + repository.getRepositoryUUID(true));
        System.out.println("");
        imagefoldercheck = new ArrayList<String>();
        listEntries(repository, "");
    } catch (SVNException svne) {
        System.err.println("error while listing entries: "
                + svne.getMessage());
    }
    /*
     * Gets the latest revision number of the repository
     */
    long latestRevision = -1;
    try {
        latestRevision = repository.getLatestRevision();
    } catch (SVNException svne) {
        System.err.println("error while fetching the latest repository revision: "
                + svne.getMessage());
      //  System.exit(1);
    }
    System.out.println("");
    System.out.println("---------------------------------------------");
    System.out.println("Repository latest revision: " + latestRevision);
    }

/*
 * Initializes the library to work with a repository via
 * different protocols.
 */
public static void listEntries(SVNRepository repository, String path)
        throws SVNException {
    Collection entries = repository.getDir(path, -1, null,
            (Collection) null);
    Iterator iterator = entries.iterator();
    while (iterator.hasNext()) {
        SVNDirEntry entry = (SVNDirEntry) iterator.next();

        if (entry.getName().endsWith(".xml")) {
            System.out.println(entry.getName() + "   " + xmlfilecount);
            xmlfilecount = xmlfilecount + 1;
            imagefoldercheck.add(entry.getName());
        }

        System.out.println("imagefoldercheck --> "+imagefoldercheck);
       /*
         * Checking up if the entry is a directory.
         */
        if (entry.getKind() == SVNNodeKind.DIR) {
            listEntries(repository, (path.equals("")) ? entry.getName()
                    : path + "/" + entry.getName());
        }
    }
}

}

关于java - 如何在svn中查找文件夹内的文件数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25403075/

相关文章:

java - 比较字符串方法

java - 为什么 ArrayUtils.add 不在这里添加元素

java - SVN 符号链接(symbolic link)对 Linux 和 Windows 透明

svn - 保持同一文件的多个副本同步的最佳方法是什么?

user-interface - 如何在centos7上安装Rabbitvcs?

ubuntu - 无法在 ubuntu 16.04 上安装 RabbitVCS 和 SVN

java - 为 jar 应用程序创建启动器

ubuntu - 在 Ubuntu 14.04 上安装 Cpyrit

svn - 更改 RabbitVCS 上下文菜单的语言

java.lang.ClassNotFoundException : org. json.JSONException