Интерфейс C# Duplicati восстановить один файл

Я пытаюсь использовать Duplicati API для восстановления одного файла.

О сценарии: все работает на Linux, поэтому он скомпилирован с моно. Моя резервная копия содержит две исходные папки, поэтому, если я запустите Interface.ListSourceFolders() Я получаю массив из двух.

Желаемый результат: я хочу восстановить один файл (или папку) из моей резервной копии

Текущий результат: если я запускаю приведенный ниже код, он восстанавливает все резервные копии файлов (таким образом, папка 1 и папка 2) по пути в //Comment1,

List<string> files = new List<string>();
files.Add("path");    //Comment1

Dictionary<string,string> options = new Dictionary<string,string>();
options["passphrase"] = MySettings.Password;
options["restore-time"] = date;
//Comment2

Interface i = new Interface("file:///path/to/archives", options);
string result = i.Restore(files.ToArray());

Что я пробовал: я пытался установить путь в //Comment1 на абсолютный путь (/desired/file/to/restore) или используя индекс исходной папки (0/file/to/restore) и я тоже поиграл //Comment2, например, я добавил что-то вроде options["restore-path"] = "/path/to/restore", Я всегда получаю один и тот же результат.

Кто-нибудь видит, что я делаю не так? Потому что я не знаю, что еще я мог попробовать. Там почти нет документации, поэтому я не знаю, где искать. Если кто-то знает ссылку на хорошую документацию, я тоже был бы счастлив!

1 ответ

Решение

На случай, если кому-то интересно. Попробовав несколько часов, я наконец узнал, как восстановить только один файл или папку. Вот что я делаю сейчас:

List<string> files = new List<string>();
files.Add("/restore/path");    //Comment1

Dictionary<string,string> options = new Dictionary<string,string>();
options["passphrase"] = MySettings.Password;
options["restore-time"] = date;
options["file-to-restore"] = "files";    //Comment2

Interface i = new Interface("file:///path/to/archives", options);
string result = i.Restore(files.ToArray());

В //Comment1 вам нужно установить желаемый путь восстановления. В этой папке создаются все наборы резервных копий (папки из Interface.ListSourceFolders())

В //Comment2 Вы можете указать файлы для восстановления в этой форме: 0/file/to/restore где 0 это индекс исходной папки (Interface.ListSourceFolders()). Если вам нужно восстановить несколько файлов, вы можете сделать это, объединив их в одну строку: например, Windows: 0/file1;1/file2 или Linux 0/file1:1/file2 (Разница - точка с запятой или двоеточие)

Теперь есть еще одна вещь: вы не можете восстановить папку с ее файлами. Вам необходимо объединить все файлы и вложенные файлы в строку, указанную выше.

Я надеюсь, что смогу помочь кому-нибудь.

Другие вопросы по тегам