svnkit递归获取指定目录下的全部文件
package demo.wc;
import java.util.Collection;
 import java.util.Iterator;
import org.tmatesoft.svn.core.SVNDirEntry;
 import org.tmatesoft.svn.core.SVNException;
 import org.tmatesoft.svn.core.SVNNodeKind;
 import org.tmatesoft.svn.core.SVNURL;
 import org.tmatesoft.svn.core.auth.ISVNAuthenticationManager;
 import org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryFactoryImpl;
 import org.tmatesoft.svn.core.io.SVNRepository;
 import org.tmatesoft.svn.core.io.SVNRepositoryFactory;
 import org.tmatesoft.svn.core.wc.SVNWCUtil;
/*
  * 此类用来显示版本库的树状结构。
 * 此类用底层API(Low Level API)直接访问版本库。
 * 此程序框架于1-5的示例(High Level API)稍有不同。
 * */
public class DisplayRepositoryTree {
public static void main(String[] args) {
//    	初始化支持svn://协议的库。 必须先执行此操作。
SVNRepositoryFactoryImpl.setup();
/*
          * 相关变量赋值
         */
String url = "https://jy-PC/svn/Myjy/";//https://jy-PC/svn/Myjy/
         String name = "admin";
         String password = "admin";
         //定义svn版本库的URL。
        SVNURL repositoryURL = null;
         //定义版本库。
        SVNRepository repository = null;
         /*
          * 实例化版本库类
         * */
         try {
         	//获取SVN的URL。
        	repositoryURL=SVNURL.parseURIEncoded(url);
         	//根据URL实例化SVN版本库。
            repository = SVNRepositoryFactory.create(repositoryURL);
         } catch (SVNException svne) {
             /*
              * 打印版本库实例创建失败的异常。
             */
             System.err
                     .println("创建版本库实例时失败,版本库的URL是 '"
                             + url + "': " + svne.getMessage());
             System.exit(1);
         }
/*
          * 对版本库设置认证信息。
         */
         ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager(name, password);
         repository.setAuthenticationManager(authManager);
/*
          * 上面的代码基本上是固定的操作。
         * 下面的部门根据任务不同,执行不同的操作。
         * */
         try {
//打印版本库的根
//            System.out.println("Repository Root: " + repository.getRepositoryRoot(true));
             //打印出版本库的UUID
 //            System.out.println("Repository UUID: " + repository.getRepositoryUUID(true));
             System.out.println("");
             //打印版本库的目录树结构
            listEntries(repository, "");
         } catch (SVNException svne) {
             System.err.println("打印版本树时发生错误: "
                     + svne.getMessage());
             System.exit(1);
         }
         /*
          * 获得版本库的最新版本树
         */
         long latestRevision = -1;
         try {
             latestRevision = repository.getLatestRevision();
         } catch (SVNException svne) {
             System.err
                     .println("获取最新版本号时出错: "
                             + svne.getMessage());
             System.exit(1);
         }
         System.exit(0);
     }
/*
      * 此函数递归的获取版本库中某一目录下的所有条目。
     */
     public static void listEntries(SVNRepository repository, String path)
             throws SVNException {
         //获取版本库的path目录下的所有条目。参数-1表示是最新版本。
        Collection entries = repository.getDir(path, -1, null,(Collection) null);
         Iterator iterator = entries.iterator();
         while (iterator.hasNext()) {
             SVNDirEntry entry = (SVNDirEntry) iterator.next();
             System.out.println("/" + (path.equals("") ? "" : path + "/") + entry.getName());
             if (entry.getKind() == SVNNodeKind.DIR) {
                 listEntries(repository, (path.equals("")) ? entry.getName(): path + "/" + entry.getName());
             }
         }
     }
 }
svnkit递归获取指定目录下的全部文件的更多相关文章
- c# 获取指定目录下的所有文件并显示在网页上
		参考文献: FileInfo 的使用 https://msdn.microsoft.com/zh-cn/library/system.io.fileinfo_methods(v=vs.110).as ... 
- C++:获取指定目录下的所有文件
		1.获得指定目录下的所有文件(不搜索子文件夹) 需要包含的头文件 #include <io.h> #include <string> #include <vector&g ... 
- php获取指定目录下的所有文件列表
		在我们实际的开发需求中,经常用到操作文件,今天就讲一下关于获取指定目录下的所有文件的几种常用方法: 1.scandir()函数 scandir() 函数返回指定目录中的文件和目录的数组. scandi ... 
- 利用 FilesystemIterator 获取指定目录下的所有文件
		/** * 获取指定目录下的所有文件 * @param null $path * @return array */ public function getFileByPath($path = null ... 
- File常用的方法操作、在磁盘上创建File、获取指定目录下的所有文件、File文件的重命名、将数据写入File文件
		文章目录 1.基本介绍 2.构造方法 3.常用的方法 4.代码实例 4.1 创建文件和目录(目录不存在) 4.1.1 代码 4.1.2 测试结果 4.2 测试目录存在的情况.直接写绝对的路径名 4.2 ... 
- Qt5读取系统环境变量和获取指定目录下的所有文件夹绝对路径
		头文件 /// 读取环境变量使用 #include <QProcessEnvironment> /// 遍历文件夹使用 #include <QDir> 核心代码 一个例子, 输 ... 
- java 递归获取一个目录下的所有文件路径
		还是日志的问题,log4j生成的日志文件,自动保存到月份所在的文件夹中,需要获取到所有的日志文件,包括文件夹 private List<String> ergodic(File file, ... 
- go递归打印指定目录下的所有文件及文件夹
		func treedir(fpath string){ // 获取fileinfo if finfo,err := os.Stat(fpath); err == nil { // 判断是不是目录 如果 ... 
- 递归删除指定目录下的 .git 文件
		转载自:http://my.oschina.net/armsky/blog/34447 find . -name .git | xargs rm -fr 其中对 xargs 的介绍,可以参照以下内容: ... 
随机推荐
- pip和conda安装源更改
			pip和conda安装源更改 python模块安装,使用国内源可以提高下载速度. pip源更改: pip源有好几个,我一直用的清华的pip源,它5分钟同步一次. 临时使用: pip 后加参数 -i h ... 
- hive Tutorial
			hive数据单元按照粒度从大到小,依次为 1.数据库database:可以用show databases; 命令查看所有的数据库,并用use d1; 命令来选中d1数据库,接下来就可以操作d1数据库中 ... 
- ionic3打包打包安卓apk详细过程以及遇到的问题
			1.jdk和sdk的安装以及环境变量配置参考打包详解 上述连接已经从下载安装jdk以及sdk的环境变量配置到打包的流程以及很详细了.但是在我自己安装打包的过程中遇到了这篇文章中没有遇到的问题,下面图文 ... 
- mojing SDK根据坐标进行移动
			using UnityEngine; using UnityEngine.UI; using System.Collections; public class transforms : MonoBeh ... 
- JavaEE_XMind总结
			1 Servlet 2 ServletContext 3 HttpServletResponse 4 HttpServletResquest 5 Cookie 
- Js 合并 table 行 的实现方法
			Js 合并 table 行 的实现方法 需求如下: 某公司的员工档案,如下, 经理看员工的信息不是很清晰: 姓名 所在学校 毕业时间 张三 小学 2000 张三 中学 2006 张三 大学 2010 ... 
- php查找字符串中第一个非0的位置截取
			$str = '00000000000000000000000000000000000000001234506'; $preg = '/[0]*/'; $result = preg_replace($ ... 
- css3打包后自动追加前缀插件:autoprefixer
			用vue-cli构建的项目脚手架已经帮你把autoprefixer的配置做好了,自己不需要做什么改动就会自动加前缀: 下面一起看看涉及到autoprefixer这个插件的一些配置: 1,postcss ... 
- 基于Maven的Spring + Spring MVC + Mybatis的环境搭建
			基于Maven的Spring + Spring MVC + Mybatis的环境搭建项目开发,先将环境先搭建起来.上次做了一个Spring + Spring MVC + Mybatis + Log4J ... 
- 无限滚动条的css布局理解
			一.需求描述 做一个waymo的滚动条,在页面中显示两张图,一共4张图,无限滚动播放. .car{ width: 600px; height: 157px; margin: 100px auto; b ... 
