2012-05-01 56 views
0

如何做一個簡單的遞歸列表來構建目錄結構?如何使用遞歸集合列表來構建目錄結構?

我正在使用gdata python客戶端庫。查看client.py和data.py,沒有簡單的方法來列出和構建目錄結構。

什麼我做的是:(假設self.client已認證)

  1. self.client.GetAllResources(包括showfolders =真)
  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/

默認情況下,文件夾本身沒有列在內容供稿中,因此您可以將這兩個文件夾組合在一起以獲取整個層次結構。

我想我更喜歡上面的方法來獲取一個扁平列表並生成文件夾層次結構,這只是提供一個替代方案。