java实现Starteam检索本地未上传到服务器的目录
2013-10-23 09:32
357 查看
1、所属jar包:starteam-sdk-5.2.jar
2、样例代码
package com.comtop.qcms.base.starteam;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import com.starbase.starteam.Folder;
import com.starbase.starteam.Project;
import com.starbase.starteam.Server;
import com.starbase.starteam.StarTeamFinder;
import com.starbase.starteam.View;
/**
* 对比服务器与本地的差异
*
*/
public class CompareServerAndLocalDirectory {
/** 文件所在磁盘目录 */
private static final String DISK_DIRECTORY = "D:/";
/** 项目名称 */
private static final String PROJECT_NAME = "PROJECTNAME";
/** 检索文件根目录 */
private static final String URL = "/src/main";
/** 服务器上的文件集合 */
private static Map<String, String> serverDirectory = new HashMap<String, String>();
/** 本地有而服务器没有的文件列表 */
private static List<String> singleLocalDirectory = new ArrayList<String>();
public static void main(String[] args) {
compareFile();
// printServerFolder();
compareLocalFolder();
printLocalFolder();
}
public static void compareFile() {
// 连接服务器,服务器地址及端口号
Server server = new Server("10.10.10.1", 11111);
server.connect();
// 登录服务器,用户名及密码
server.logOn("userName", "password");
// 获取要CheckOut的项目
Project[] projects = server.getProjects();
Project project = null;
for (int i = 0; i < projects.length; i++) {
Project next = projects[i];
if (next.getName().equals(PROJECT_NAME)) {
project = next;
break;
}
}
// 获取要CheckOut的视图
View[] views = project.getViews();
View view = null;
for (int i = 0; i < views.length; i++) {
View next = views[i];
if (next.getName().equals(PROJECT_NAME)) {
view = next;
break;
}
}
// 获取文件要CheckOut的文件列表
Folder folder = StarTeamFinder.findFolder(view.getRootFolder(), URL);
serverDirectory.put(folder.getFilePath(""), folder.getFilePath(""));
getSubFolder(server, folder);
server.disconnect();
}
/**
* 获取服务器上的文件目录
*
* @param server
* @param folder
*/
private static void getSubFolder(Server server, Folder folder) {
serverDirectory.put(folder.getFilePath(""), folder.getFilePath(""));
Folder[] subFolders = folder.getSubFolders();
for (Folder subFolder : subFolders) {
getSubFolder(server, subFolder);
}
}
/**
* 循环组装服务器上的目录
*/
private static void compareLocalFolder() {
File file = new File(DISK_DIRECTORY + PROJECT_NAME + URL);
checkSubFolder(file);
}
/**
* 检查服务器上没有而本地有的目录
*
* @param file
*/
private static void checkSubFolder(File file) {
// 如果服务器上不存在而本地存在的目录放入到结果集中
if (serverDirectory.get(file.getPath() + "\\") == null) {
singleLocalDirectory.add(file.getPath());
}
File[] files = file.listFiles();
for (File subFile : files) {
if (subFile.isDirectory()) {
checkSubFolder(subFile);
}
}
}
/**
* 打印本地目录
*/
private static void printLocalFolder() {
for (String directory : singleLocalDirectory) {
System.out.println(directory);
}
}
/**
* 打印服务器目录
*/
private static void printServerFolder() {
Set<Map.Entry<String, String>> set = serverDirectory.entrySet();
for (Iterator<Map.Entry<String, String>> it = set.iterator(); it.hasNext();) {
Map.Entry<String, String> entry = (Map.Entry<String, String>) it.next();
System.out.println(entry.getKey());
}
}
}
2、样例代码
package com.comtop.qcms.base.starteam;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import com.starbase.starteam.Folder;
import com.starbase.starteam.Project;
import com.starbase.starteam.Server;
import com.starbase.starteam.StarTeamFinder;
import com.starbase.starteam.View;
/**
* 对比服务器与本地的差异
*
*/
public class CompareServerAndLocalDirectory {
/** 文件所在磁盘目录 */
private static final String DISK_DIRECTORY = "D:/";
/** 项目名称 */
private static final String PROJECT_NAME = "PROJECTNAME";
/** 检索文件根目录 */
private static final String URL = "/src/main";
/** 服务器上的文件集合 */
private static Map<String, String> serverDirectory = new HashMap<String, String>();
/** 本地有而服务器没有的文件列表 */
private static List<String> singleLocalDirectory = new ArrayList<String>();
public static void main(String[] args) {
compareFile();
// printServerFolder();
compareLocalFolder();
printLocalFolder();
}
public static void compareFile() {
// 连接服务器,服务器地址及端口号
Server server = new Server("10.10.10.1", 11111);
server.connect();
// 登录服务器,用户名及密码
server.logOn("userName", "password");
// 获取要CheckOut的项目
Project[] projects = server.getProjects();
Project project = null;
for (int i = 0; i < projects.length; i++) {
Project next = projects[i];
if (next.getName().equals(PROJECT_NAME)) {
project = next;
break;
}
}
// 获取要CheckOut的视图
View[] views = project.getViews();
View view = null;
for (int i = 0; i < views.length; i++) {
View next = views[i];
if (next.getName().equals(PROJECT_NAME)) {
view = next;
break;
}
}
// 获取文件要CheckOut的文件列表
Folder folder = StarTeamFinder.findFolder(view.getRootFolder(), URL);
serverDirectory.put(folder.getFilePath(""), folder.getFilePath(""));
getSubFolder(server, folder);
server.disconnect();
}
/**
* 获取服务器上的文件目录
*
* @param server
* @param folder
*/
private static void getSubFolder(Server server, Folder folder) {
serverDirectory.put(folder.getFilePath(""), folder.getFilePath(""));
Folder[] subFolders = folder.getSubFolders();
for (Folder subFolder : subFolders) {
getSubFolder(server, subFolder);
}
}
/**
* 循环组装服务器上的目录
*/
private static void compareLocalFolder() {
File file = new File(DISK_DIRECTORY + PROJECT_NAME + URL);
checkSubFolder(file);
}
/**
* 检查服务器上没有而本地有的目录
*
* @param file
*/
private static void checkSubFolder(File file) {
// 如果服务器上不存在而本地存在的目录放入到结果集中
if (serverDirectory.get(file.getPath() + "\\") == null) {
singleLocalDirectory.add(file.getPath());
}
File[] files = file.listFiles();
for (File subFile : files) {
if (subFile.isDirectory()) {
checkSubFolder(subFile);
}
}
}
/**
* 打印本地目录
*/
private static void printLocalFolder() {
for (String directory : singleLocalDirectory) {
System.out.println(directory);
}
}
/**
* 打印服务器目录
*/
private static void printServerFolder() {
Set<Map.Entry<String, String>> set = serverDirectory.entrySet();
for (Iterator<Map.Entry<String, String>> it = set.iterator(); it.hasNext();) {
Map.Entry<String, String> entry = (Map.Entry<String, String>) it.next();
System.out.println(entry.getKey());
}
}
}
相关文章推荐
- 使用递归方法实现,向FTP服务器上传整个目录结构、从FTP服务器下载整个目录到本地的功能
- 使用递归方法实现,向FTP服务器上传整个目录结构、从FTP服务器下载整个目录到本地的功能
- CaptainGan------使用递归方法实现,向FTP服务器上传整个目录结构、从FTP服务器下载整个目录到本地的功能
- Java利用ssh协议实现本地文件到远程Linux服务器的上传。
- java实现多文件上传至本地服务器功能
- java实现多文件上传至本地服务器
- Java实现上传文件图片到指定服务器目录
- Android实现上传本地或拍摄的视频到Bmob服务器
- 使用Apache Commons Net包中的FTPClient实现javaFTP来上传目录
- 使用Apache Commons Net包实现javaFTP来上传目录
- 能够正常使用的,经过测试的java+jquery+webcam调用本地摄像头拍照,然后将拍照结果上传数据库blob字段功能的实现(二)
- Java连接FTP服务器并且实现对其文件的上传和下载
- Java学习日记8:文件上传工具类的实现和服务器给客户端发送图片
- Java上传图片到服务器路径获取系列之--图片保存到Tomcat的webapps目录下
- JAVA 实现 EchoServer EchoClient 服务器、客户机本地通信程序
- shell 将本地目录以及下面目录上传到远程ftp服务器上
- 从本地上传整个目录到hdfs的java程序
- java实现文件上传下载至ftp服务器
- 使用Apache Commons Net包中的FTPClient实现javaFTP来上传目录(新)
- Java实现图片上传到服务器,并把上传的图片读取出来