2012-05-01 5 views
0

Как сделать простой рекурсивный список для создания структуры каталогов?Как использовать список рекурсивных коллекций для создания структуры каталогов?

Я использую клиентскую библиотеку gdata python. Если посмотреть на client.py и data.py, нет прямого способа перечислить и создать структуру каталогов.

Что я делаю: (Предполагается, что self.client был идентифицирован)

  1. self.client.GetAllResources (в том числе showfolders = True)
  2. Для каждого проверки ресурса resource.in_collections()

Есть ли лучший способ, чем выше?

благодаря

+0

То, как я сейчас это делаю в своем проекте gdrive-cli, заключается в сохранении метаданных файла в локальной базе данных sqlite. http://github.com/tom-dignan/gdrive-cli –

+0

Спасибо. Я посмотрел на ваш код, но не уверен, где вы работаете с коллекциями/папками. Поддерживаете ли вы их в gdrive-cli? –

+0

коллекции еще не реализованы, только перечисление файлов в плоском виде –

ответ

2

Альтернативный способ заключается в первую отсканировать иерархию только папки, и для каждой папки, список всех ресурсов. Вы можете передать любой URI в метод GetAllResources, и в этом случае было бы:

  1. Для папок только в корне:

    https://docs.google.com/feeds/default/private/full/folder%3Aroot/contents/-/folder

  2. Для содержимого папки с ID 123456 :

    https://docs.google.com/feeds/default/private/full/folder%3A123456/contents/

По умолчанию сами папки не указаны в фиде содержимого, поэтому вы можете объединить эти два, чтобы получить всю иерархию.

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