Я хочу создать приложение, которое может просматривать файлы непосредственно с рабочего стола клиента в той же иерархии, что и его/ее хранилище на диске Google. Но для этого мне нужно получить иерархию папок для этой конкретной учетной записи пользователя. В моем приложении я пытаюсь просмотреть иерархию папок в виде дерева. Ниже приведен код:
internal async Task<TreeView> SetTreeView(TreeNode node, string fileId, TreeView treeview1)
{
TreeNode t;
if (node == null)
{
t = new TreeNode();
}
else
t = node;
FilesResource.GetRequest req = driveservice.Files.Get(fileId);
var root = req.Execute();
FilesResource.GetRequest get;
await DriveV2.Authorize();
var childrenIds = DriveV2.GetChildren(root.Id);
for ( int i = 0; i < childrenIds.Count; i++)
{
get = driveservice.Files.Get(childrenIds[i]);
var file = get.Execute();
var n = t.Nodes.Add(file.Name);
SetTreeView(n,childrenIds[i], treeview1);
}
treeview1.Nodes.Add(t);
//doc.Save("file.xml");
return treeview1;
}
Пожалуйста, поправьте меня, если я ошибаюсь в какой-либо момент, и предложите другие реализации, с помощью которых я могу получить иерархию либо в XML-файле (с сохранением идентификаторов папок), либо непосредственно в дереве.
Редактировать: код, который я написал, добавляет папки в древовидную структуру, но все на одном уровне, а не в иерархическом формате.