2016-08-03 129 views
0

如何使用C#代碼獲取所有源安全子文件夾? 我們也希望獲得子文件夾中的所有子文件夾和文件夾。 例如,TestProject有2個文件夾,文件夾a和b。和一個子文件夾a1。源安全子文件夾

提取的所有路徑: 1. TestProject - >一 2. TestProject - > A - > A1 3. TestProject - >乙

回答

0

如果要列出所有的子目錄只包含文件,然後您可以使用此

Public static IEnumerable<string> GetSubdirectoriesContainingOnlyFiles(string path) 
     { 
      return from subdirectory in Directory.GetDirectories(path, "*", SearchOption.AllDirectories) 
        where Directory.GetDirectories(subdirectory).Length == 0 
        select subdirectory; 
     } 

但如果你想只是想通過所有的目錄解析&子目錄 那麼你可以使用這個

static void Main(string[] args) 
    { 
     DirSearch(@"c:\temp"); 
     Console.ReadKey(); 
    } 

    static void DirSearch(string dir) 
    { 
    try 
     { 
     foreach (string f in Directory.GetFiles(dir)) 
     Console.WriteLine(f); 
     foreach (string d in Directory.GetDirectories(dir)) 
     { 
      Console.WriteLine(d); 
      DirSearch(d); 
     } 

    } 
    catch (System.Exception ex) 
    { 
     Console.WriteLine(ex.Message); 
    } 
    } 
0

我得到這個工作是這樣

using System; 
using System.Collections.ObjectModel; 
using Microsoft.TeamFoundation.Client; 
using Microsoft.TeamFoundation.VersionControl.Client; 

using System.IO; 

namespace TFS_Path_Extraction 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      TeamFoundationServer server = new TeamFoundationServer("<TFS path of folders you want>"); 
      VersionControlServer version = server.GetService(typeof(VersionControlServer)) as VersionControlServer; 

      ItemSet items = version.GetItems(@"$\", RecursionType.Full); 
      foreach (Item item in items.Items) 
      { 
       if (item.ItemType == ItemType.Folder) 
       { 
        System.Console.WriteLine(item.ServerItem); 
       } 
      } 
      Console.Read(); 
     } 
    } 
}