2009-06-29 5 views
9

immer noch ein bisschen von einem N00b auf SharpSVN, ich bin auf der Suche nach etwas einfachen Code, um ein SVN-Repository zu öffnen, und lesen Sie (zumindest) den vollständigen Pfad aller Dateien in einem bestimmten Ordner.SharpSVN lesen Sie ALLE Dateinamen

Lassen Sie uns sagen, dass dieser Ordner \ trunk \ source

Ich bin nicht zur Kasse oder zu begehen suchen, nur lesen in eine Liste

ich auch alle Dateien zu lesen suchen, nicht nur die veränderte.

Antwort

16

ok es sieht aus wie ich eine Methode gefunden ..

 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

Schrieb dies in Eile im Notizblock; Es tut uns leid.

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"); 
}