国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

TFS二次開發05——下載文件(DownloadFile)

2019-11-17 03:17:31
字體:
來源:轉載
供稿:網友

TFS二次開發05——下載文件(DownloadFile)

Posted on 2014-03-15 17:19 祥叔 閱讀(...) 評論(...) 編輯 收藏

前面介紹了怎樣讀取TFS上目錄和文件的信息,怎么建立服務器和本地的映射(Mapping)。

本節介紹怎樣把TFS服務器上的文件下載到本地。

下載文件可以有兩種方式:

using Microsoft.TeamFoundation.VersionControl.Client;

using Microsoft.TeamFoundation.Client;

方式一:使用VersionControlServer對象,如:

string tpcURL = "http://192.168.83.62:8080";TfsTeamPRojectCollection tpc = new TfsTeamProjectCollection(new Uri(tpcURL));VersionControlServer version = tpc.GetService(typeof(VersionControlServer)) as VersionControlServer;version.DownloadFile("$/MySolution", "D://TFS//MySolution");           //從服務器上下載最新版本VersionSpec spec = new ChangesetVersionSpec(2012);version.DownloadFile("$/MySolution", 0, spec, "D://TFS//MySolution");  //從服務器上下載指定版本//VersionSpec有如下幾個子類:// ArtifactVersionSpec // LabelVersionSpec// DateVersionSpec// WorkspaceVersionSpec

如果您使用過TFS那么看到下圖就能明白上面幾個子類的意義了。

方式二:使用Microsoft.TeamFoundation.VersionControl.Client.Item對象,如:

ItemSet items = version.GetItems(serverPath,  RecursionType. Full);               //最新版//ItemSet items = version.GetItems(serverPath,spec, RecursionType.OneLevel);      //指定版本foreach (Item item in items.Items){    if (item.ItemType == ItemType.File)     {       item.DownloadFile(fileFullName);        //下載到本地文件       /Stream stream = item.DownloadFile();    //以流的形式返回      }}

從上面的代碼我們可以看出服務器上的文件或文件夾可以下載到本地任意目錄,但在實際應用中,我們要把它們下載到已做過映射的路徑下。因為沒有映射(Mapping),我們后期對文件所做的操作就無法簽入(CheckIn)到服務器。

結合前面所介紹的Workspace和mapping 我們來看一段完整的代碼:/// <summary>

 /// 這段代碼從零開始完整地演示了從TFS上下載文件到本地的過程 /// </summary> void DownloadFilesFromTFS() {    //第一步:連接到TFS服務器    string tpcURL = "http://192.168.83.62:8080";    TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(new Uri(tpcURL));    VersionControlServer version = tpc.GetService(typeof(VersionControlServer)) as VersionControlServer;    //第二步:創建工作區(Worksapce),如果已經存在就不創建    string worksapce = "WorkSpaceTest01";    Workspace ws;    Workspace[] wss = version.QueryWorkspaces(worksapce, Environment.UserName, Environment.MachineName);//查詢工作區    if (wss.Length == 0)     {         ws = version.CreateWorkspace(worksapce);//創建工作區     }     else     {         ws = wss[0];     }    #region 將$/MySolution/CommDll下的所有文件夾和文件 下載到本地"E://TFS62//MySolution//CommDll" 下面        string serverPath = "$/MySolution/CommDll";    string savePath = "E://TFS62//MySolution//CommDll";    //第三步:獲取最新版本,也可以使用GetItems其他重載獲取特定版本    ItemSet items = version.GetItems(serverPath, RecursionType.Full);    foreach (Item item in items.Items)    {       string serverItem = item.ServerItem;                                       //如:$/MySolution/CommDll/CommDll.sln       string localItem = savePath + serverItem.Substring(serverPath.Length);     //存儲到本地的路徑       localItem = localItem.Replace("/", "http://");       //第四步:做映射(Mapping)        if (!ws.IsServerPathMapped(serverItem))        {            ws.Map(serverItem, localItem);        }        //第五步:創建目錄或下載文件        if (item.ItemType == ItemType.Folder)        {            if (!Directory.Exists(localItem))       //如果目錄不存在則創建             {                  Directory.CreateDirectory(localItem);              }        }        else if (item.ItemType == ItemType.File)        {             item.DownloadFile(localItem);            //下載到本地文件        }    }    #endregion}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 当雄县| 巍山| 河北区| 盱眙县| 庆城县| 广州市| 涡阳县| 定西市| 沙田区| 石嘴山市| 曲麻莱县| 沛县| 长垣县| 阜康市| 邓州市| 常熟市| 修武县| 墨玉县| 都兰县| 武夷山市| 宁都县| 三河市| 栖霞市| 乐东| 怀来县| 龙岩市| 修武县| 宁国市| 上犹县| 吴江市| 吴忠市| 罗山县| 达州市| 乐陵市| 霍邱县| 申扎县| 射洪县| 临沧市| 加查县| 深泽县| 额济纳旗|