0

我正在尝试使用 Duplicati API 来恢复单个文件。

关于场景:整个东西在 linux 上运行,所以它是用 mono 编译的。我的备份包含两个源文件夹,所以如果我运行,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) 的索引,并且我也玩过//Comment2at 例如,我添加了类似options["restore-path"] = "/path/to/restore". 我总是得到相同的结果。

有谁看到我做错了什么?因为我不知道我还能尝试什么。几乎没有文档,所以我不知道在哪里搜索。如果有人知道一个好的文档的链接,我也会很高兴!

4

1 回答 1

0

万一有人感兴趣。在尝试了几个小时后,我终于发现了如何只恢复一个文件或文件夹。这是我现在正在做的事情:

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以下形式指定要恢复的文件:其中是源文件夹的索引 ( )。如果您需要恢复多个文件,您可以通过将它们组合成一个字符串来完成:例如 Windows:或 Linux (区别是分号或冒号)0/file/to/restore0Interface.ListSourceFolders()0/file1;1/file20/file1:1/file2

现在还有一件事:您无法恢复包含文件的文件夹。您需要将上述字符串中的所有文件和子文件组合起来。

我希望我能帮助别人。

于 2015-08-14T15:46:03.990 回答