Нахождение пути к файлу, указанному это идентификатор

StackOverflow https://stackoverflow.com//questions/11657136

  •  11-12-2019
  •  | 
  •  

Вопрос

Я получаю филиал с:

    String q = "title contains '"+query+"' and trashed = false";
    FileList list = drive.files().list().setQ(q).execute();
.

Я хочу найти путь к каждому подходящему файлу в филиале.

Я понимаю, что один и тот же файл может появиться в нескольких папках.

Из того, что я нашел, единственный способ создать путь для файла - это неоднократно звонить:

    drive.files().get(id).execute()
.

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

Во время навигации на дереве я мог просто выбрать первый родитель или сделать «BFS», пока не найду корне.

Это действительно единственный способ найти путь к файлу, или я пропустил какую-то часть API?

Если это единственный способ, могут ли папки с несколькими родителями тоже сделать возможным циклы?

(/ a / b / c=> / a / b / c / b / c / b / c ... Если b есть родители A & C)?

Это было полезно?

Решение

Поскольку папки (которые просто специальный файл диска с определенным типом MIME) могут иметь несколько родителей, я бы порекомендовал подход BFS и убедившись, что вы обрабатываете петли.

Для условий остановки вы можете сохранить идентификатор корневой папки, которую вы можете получить из О компании атрибут .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top