Используя SharpSVN, как вы можете экспортировать файл в память, а не в файловую систему? - PullRequest
3 голосов
/ 06 августа 2010

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

Ответы [ 2 ]

8 голосов
/ 07 августа 2010

Вы можете использовать SvnClient.Write() для этого.

Пример:

using(var stream = new MemoryStream())
{
    // export urlToFile, at revision 1234:
    client.Write(new SvnUriTarget(new Uri(urlToFile), 1234), stream);
}
0 голосов
/ 06 августа 2010

Я исправлен, но не могу удалить сообщение.

Я взглянул на исходный код SharpSVN, и он не выглядит многообещающим. Вместо использования потоков файлов .NET для записи в файловую систему (что могло бы дать нам некоторое представление о том, как использовать поток .NET по нашему выбору), библиотека выполняет внутреннее взаимодействие при выполнении команд. Нативные методы возвращают значения, указывающие на успех или неудачу, но, по-видимому, не предоставляют дескрипторы для чего-либо, что мы можем превратить в MemoryStream или некоторую такую ​​структуру в памяти.

Я думаю, что решение проблемы с наименьшими усилиями состоит в том, чтобы экспортировать ревизии во временное хранилище файлов, а затем прочитать файлы в память с помощью классов System.IO.

...