svnkit查詢、檢測、獲取文件功能樣例
package com.service.statistics; import java.io.ByteArrayOutputStream; import java.nio.charset.Charset; import java.util.ArrayList; import java.util.Collection; import java.util.List; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.tmatesoft.svn.core.SVNDirEntry; import org.tmatesoft.svn.core.SVNException; import org.tmatesoft.svn.core.SVNNodeKind; import org.tmatesoft.svn.core.SVNProperties; import org.tmatesoft.svn.core.SVNURL; import org.tmatesoft.svn.core.internal.io.dav.DAVRepositoryFactory; import org.tmatesoft.svn.core.internal.wc.DefaultSVNOptions; import org.tmatesoft.svn.core.internal.wc.admin.SVNEntry; import org.tmatesoft.svn.core.io.SVNRepository; import org.tmatesoft.svn.core.wc.SVNClientManager; import org.tmatesoft.svn.core.wc.SVNUpdateClient; /**查詢svn目錄 * @Title SvnTest.java * @Description please descript this file * @author <a href= "mailto:" style="color:##E0E;">bin</a> * @date 2016年6月29日 下午2:39:13 * @version V1.0 */ @Exclude public class SvnService { private static final Logger logger = LoggerFactory.getLogger(SvnService.class); // @Inject(instance = PropertyUtil.class) // private PropertyUtil propertyUtil; static { DAVRepositoryFactory.setup(); } private SVNClientManager manager; private SVNUpdateClient updateClient; private String url; private String userName; private String passwd; public SvnService(String userName,String passwd) { init(userName, passwd); } private void init(String userName,String passwd){ DefaultSVNOptions options = new DefaultSVNOptions(); manager = SVNClientManager.newInstance(options); manager = SVNClientManager.newInstance(options,userName,passwd); updateClient = manager.getUpdateClient(); updateClient.setIgnoreExternals(false); } public SvnService(String userName,String passwd,String url){ this(userName,passwd); this.url=url; } /**獲取文件內容 * @param url * @return */ public String checkoutFileToString(String url){//"", -1, null SVNRepository repository = createRepository(url); try { SVNDirEntry entry = repository.getDir("", -1, false, null); int size = (int)entry.getSize(); ByteArrayOutputStream outputStream = new ByteArrayOutputStream(size); SVNProperties properties = new SVNProperties(); repository.getFile("", -1, properties, outputStream); String doc = new String(outputStream.toByteArray(),Charset.forName("utf-8")); return doc; } catch (SVNException e) { e.printStackTrace(); } return null; } public boolean toParantFolder(){ if(url!=null){ StringBuffer sb = new StringBuffer(url); if(url.endsWith("/")){ sb.deleteCharAt(sb.length()-1); } int index = sb.lastIndexOf("/"); url=sb.substring(0, index); return true; } return false; } /**進入子目錄 * @param folder * @return */ public boolean toChildFolder(String folder){ if(url!=null){ StringBuffer sb = new StringBuffer(url); boolean a = url.endsWith("/"); boolean b = folder.startsWith("/"); if(a^b){ sb.append(folder); }else if(a&b){ sb.deleteCharAt(sb.length()-1); sb.append(folder); }else{ sb.append('/').append(folder); } if(checkPath(sb.toString())==1){ this.url=sb.toString(); return true; } } return false; } /**獲取當前目錄下的子目錄和檔案 * @return * @throws SVNException */ public List<SVNDirEntry> listFolder() throws SVNException { return listFolder(url); } /**列出指定SVN 地址目錄下的子目錄 * @param url * @return * @throws SVNException */ public List<SVNDirEntry> listFolder(String url){ if(checkPath(url)==1){ SVNRepository repository = createRepository(url); try { Collection<SVNDirEntry> list = repository.getDir("", -1, null, (List<SVNDirEntry>)null); List<SVNDirEntry> dirs = new ArrayList<SVNDirEntry>(list.size()); dirs.addAll(list); return dirs; } catch (SVNException e) { logger.error("listFolder error",e); } } return null; } private SVNRepository createRepository(String url){ try { return manager.createRepository(SVNURL.parseURIEncoded(url), true); } catch (SVNException e) { logger.error("createRepository error",e); } return null; } /**檢查路徑是否存在 * @param url * @return 1:存在 0:不存在 -1:出錯 */ public int checkPath(String url){ SVNRepository repository = createRepository(url); SVNNodeKind nodeKind; try { nodeKind = repository.checkPath("", -1); boolean result = nodeKind == SVNNodeKind.NONE ? false : true; if(result) return 1; } catch (SVNException e) { logger.error("checkPath error",e); return -1; } return 0; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPasswd() { return passwd; } public void setPasswd(String passwd) { this.passwd = passwd; } public static void main(String[] args) throws SVNException { String url = "你的svn路徑"; SvnService svn = new SvnService("賬號", "密碼"); String xml = svn.checkoutFileToString(url); } }
需要相關包:svnkit、dom4j
實現查詢路徑是否存在
實現獲取檔案內容
實現獲取子目錄
相關推薦
svnkit查詢、檢測、獲取文件功能樣例
package com.service.statistics; import java.io.ByteArrayOutputStream; import java.nio.charset.Charset; import java.util.ArrayList; impor
Chrome百度雲插件-獲取文件下載鏈接、定制分享密碼
javascriptChrome百度雲插件說明用於chrome瀏覽器的百度雲網頁插件,用於獲取文件下載鏈接,定制文件分享密碼,使用迅雷下載百度雲文件比普通的瀏覽器直接下載的會快。但是跟百度雲會員下載速度還是有區別的。所以,有錢還是開個會員好。 此插件支持文件共享密碼定制,即可以根據自己喜好來設置共享密碼,密碼
C#使用System.IO.Path獲取文件路徑、文件名
filepath 目錄 tle provide volume 指示 完整路徑 nat col class Program { static void Main(string[] args) { //獲取
(轉)blkid命令 獲取文件系統類型、UUID
file root tun learning 目的 int splash 標識 ref 原文:http://www.cnblogs.com/dkblog/archive/2011/08/30/2159630.html 在Linux下可以使用blkid命令對查詢設備上
C# 獲取文件名、目錄、後綴、無後綴文件名、擴展名、根目錄等
TE console div lin pro () copy IT color [csharp] view plain copy class Program { static void Main(string[] args)
Android實戰——第三方服務之Bmob後端雲的增刪改查、上傳文件、獲取文件、修改密碼(二)
tid blank 生成 src 上傳圖片 放置 第三方 b數 net 第三方服務之Bmob後端雲的增刪改查、上傳文件、獲取文件、修改密碼(二) 事先說明:這裏的一切操作都是在集成了BmobSDK之後實現的,如果對Bmob還不了解的話,請關註我第一篇Bmob文章 步
DOS、Mac 和 Unix 文件格式+ UltraEdit使用
選項 就會 ultra app hex vip view .html unix環境 一、文本格式區別 用UltraEdit打開unix文本文件時總會提示:是否將文件轉換為dos格式。在windows編輯配置文件,然後用ftp上傳到linux主機,發現運行時讀取配置文件有錯
Android 音頻播放——AudioTrack直接播PCM、MediaPlayer播媒體文件可以是audio
@override ger ntp audio mon extc exc getc views http://blog.csdn.net/java_android_c/article/details/52678265 Android平臺播放音頻的方式一般有3種。1.利用
5、Maven-構建配置文件
什麽是 arch 目標 posit fig cat ner 變量 any 什麽是構建配置文件?配置文件是一組配置的集合,用來設置或者覆蓋Maven構建的默認設置,使用配置文件可以為不同的環境定制構建過程,例如Producation和Development環境。Profile
Linux特殊權限set_uid、set_gid、stick_bit命令和軟鏈接文件、硬連接文件
set uid 特殊權限set_uid:用ls -l查看 passwd命令文件的路徑可以看到這個文件和之前所看到的文件有些不同,有紅色的標記,而且有個s權限:這個s就是set_uid的權限,這個權限可以讓普通用戶修改自己的密碼,這個權限的原理是:當普通用戶執行passwd命令的一瞬間給它賦予root的
Springmvc異常、攔截器、格式轉換、國際化處理配置文件以及java類
2.3 gin ltm erb nal ges contex utf on() 1.springmvc配置文件自動註解設置。 <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.sp
給定a、b兩個文件,各存放50億個url,每個url各占用64字節,內存限制是4G,如何找出a、b文件共同的url?
.... 不同的 來看 相同 兩個文件 oom 兩個 存在 明顯 題目描述:給定a、b兩個文件,各存放50億個url,每個url各占用64字節,內存限制是4G,如何找出a、b文件共同的url? 分析:我們先來看如果要把這些URL全部加載到內存中,需要多大的空間。 1MB
【Linux】【二】linux 壓縮文件(txt)、查看壓縮文件內容、解壓縮文件、
str tool div png gun medium spa clas info 通過Xshell 壓縮文件、解壓縮文件 gzip tools.txt 壓縮【tools.txt】文件 zcat tools.txt.gz 查看壓縮文件
讀寫文件、文件方法、python2的亂碼問題、python對passwd文件進行排序
__main__ .com 哈哈 == nco star 9.png mar ges 讀寫文件 if __name__==‘__main__‘: filename=input(‘請輸入保存的文件:‘) fdfile=open(filename,‘w+‘)
十、find命令;文件名後綴
不常用 允許 支持 oot 數據結構 st2 訪問 bcd linux 一、find命令格式:find [路徑] [參數]。常用參數:-atime +n/-n:表示訪問或執行時間大於或小於n天的文件。-ctime +n/-n:表示寫入、更改iNode屬性(如更改所有者、權限
十一、Linux和Windows互傳文件、用戶配置文件和密碼配置文件、用戶組管理、用戶管理
天才 install gin dd命令 建立 我們 log 永遠 name 十一、Linux和Windows互傳文件、用戶配置文件和密碼配置文件、用戶組管理、用戶管理一、Linux和Windows互傳文件安裝軟件包:yum install -y lrzsz(xshell,s
01: 存儲技術與應用 、 iSCSI技術應用 、 udev配置 、 NFS網絡文件系統 、 Mul
nas stat 準備 lib www 獲取 自定義 rul tip 存儲的是什麽? 數據數據存儲的介質? 永久存儲(硬盤) 臨時存儲(內存)存儲位置? 雲存儲 內存存儲 硬盤存儲存儲類型? 共享存儲 分布式存儲存儲技術? DAS
告警系統主腳本、告警系統配置文件、告警系統監控項目
一級目錄 項目 pre 監控 config ash 目錄 定義 request 告警系統主腳本 1.定義shell項目-告警系統腳本main.sh [root@garytao-01 ~]# cd /usr/local/sbin/ [root@garytao-01 sbin]
18、HTML5 音頻文件
net for ref chrom 不同 sla eight pre pos 如需在 HTML5 中播放音頻,你需要使用以下代碼: <audio controls> <source src="horse.ogg" type="audio/ogg"&g
Mysql數據庫介紹、安裝和配置文件
username 存取 空閑 交互式 遠程登錄 現在 centos7 delet 取數 Mysql數據庫介紹、安裝和配置文件 MySQL數據庫介紹 mysql是開源關系型數據庫,遵循GPL協議。 mysql的特點是性能卓越且服務穩定,開源,無版本限制,成本低