SharpSVN читать все имена файлов - PullRequest
9 голосов
/ 30 июня 2009

все еще немного n00b на SharpSVN, я ищу какой-нибудь простой код, чтобы открыть репозиторий SVN и прочитать (по крайней мере) полный путь всех файлов в определенной папке.

Допустим, эта папка является \ trunk \ source

Я не хочу оформлять заказ или фиксировать, просто прочитал список

Я также хочу прочитать ВСЕ файлы, а не только измененные.

Ответы [ 2 ]

16 голосов
/ 30 июня 2009

хорошо, похоже, я нашел метод ..

        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 голосов
/ 10 марта 2010

Написал это в спешке в блокноте; К сожалению.

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