2014-09-25 4 views
1

Я хочу написать приложение, которое ищет текстовый файл во всех текстовых файлах по определенному пути SVN-репозитория и возвращает все файлы, содержащие этот токен. Я использую sharpsvn для этого приложения. Я знаю, как я могу получить пути всех файлов в корневом каталоге SVN-репозитория (и его подпапках, конечно), но мне интересно, есть ли способ прочитать содержимое каждого файла непосредственно из репозитория SVN без проверки или экспортировать их на компьютер, на котором выполняется мое приложение? Если такой способ чтения содержимого напрямую из репозитория, как вы рекомендуете мне делать проверку или экспортировать файлы с плавным доступом, чтобы найти определенный токен во всех файлах?Прочитайте содержимое файла непосредственно из репозитория SVN

+0

Также см. [Этот аналогичный вопрос] (http://stackoverflow.com/q/44176/1698557). В двух словах, это не легко решить проблему. –

ответ

1

Использование SvnClient.Write с целевой URL и прочитать строку из MemoryStream:

using (var stream = new MemoryStream()) 
using (SvnClient client = new SvnClient()) 
{ 
    string yourUrl = "http://svn.apache.org/repos/asf/subversion/trunk/CHANGES"; 
    if (client.Write(new SvnUriTarget(yourUrl), stream)) 
    { 
     // reset the position to read from the beginning 
     stream.Position = 0; 
     using (var reader = new StreamReader(stream)) 
     { 
      string contents = reader.ReadToEnd(); 

      // find your token 
     } 
    } 
} 

Обратите внимание, что это не будет очень быстро, как он открывает новое соединение с сервером для каждого файла.

+0

Подтверждение этого еще работает, но обратите внимание, что 'stream.Position = 0;' является ключом к тому, чтобы это работало. В противном случае он возвращает пустую строку – oscilatingcretin

Смежные вопросы