2009-06-29 87 views
9

在SharpSVN上仍然有點n00b,我正在尋找一些簡單的代碼來打開SVN存儲庫,並且讀取(至少)特定文件夾中所有文件的完整路徑。SharpSVN讀取所有文件名

比方說,這個文件夾是\幹線\源

我不希望籤或承諾,只是讀入一個列表

我也期待閱讀所有文件,而不僅僅是改變了。

回答

16

確定它看起來像我找到了一個方法..

 bool gotList; 
     List<string> files = new List<string>(); 

     using (SvnClient client = new SvnClient()) 
     { 
      Collection<SvnListEventArgs> list; 

      gotList = client.GetList(projectPath, out list); 

      if (gotList) 
      { 
       foreach (SvnListEventArgs item in list) 
       { 
        files.Add(item.Path); 
       } 
      } 
     } 
7

在記事本匆匆寫這一點;抱歉。

SvnClient client = new SvnClient(); 
client.Authentication.DefaultCredentials = new NetworkCredential("svnuser", "svnpass"); 
SvnUriTarget folderTarget = new SvnUriTarget("https://mysvnserver.com/mysvnpath"); 
List<String> filesFound = getFolderFiles(client, folderTarget); 

// GetFolderFiles 
// Function that, given a SvnClient and Target to a folder, returns a list of files 
private List<String> getFolderFiles(SvnClient client, SvnTarget folderTarget) 
{ 
    List<String> filesFound = new List<String>(); 
    List<SvnListEventArgs> listResults; 

    if (client.GetList(folderTarget, out listResults)) 
    { 
     foreach (SvnListEventArgs item in listResults) 
      if (item.Entry.NodeKind == SvnNodeKind.File) 
       filesFound.Add(item.Path); 

     return filesFound; 
    } 
    else 
     throw new Exception("Failed to retrieve files via SharpSvn"); 
} 
相關問題