0

Dropbox APIを使用すると、ルートフォルダー内のすべてのフォルダーを表示でき、メタデータを使用して、JSONからのすべての情報を画面に出力できます。

たとえば、サンプル出力は次のようになります。

{
    'bytes': 0,
    'contents': [
        {
           'bytes': 0,
           'icon': 'folder',
           'is_dir': True,
           'modified': 'Thu, 25 Aug 2011 00:03:15 +0000',
           'path': '/Sample Folder',
           'rev': '803beb471',
           'revision': 8,
           'root': 'dropbox',
           'size': '0 bytes',
           'thumb_exists': False
        }, 
        {
           'bytes': 77,
           'icon': 'page_white_text',
           'is_dir': False,
           'mime_type': 'text/plain',
           'modified': 'Wed, 20 Jul 2011 22:04:50 +0000',
           'path': '/magnum-opus.txt',
           'rev': '362e2029684fe',
           'revision': 221922,
           'root': 'dropbox',
           'size': '77 bytes',
           'thumb_exists': False
        }
    ],
    'hash': 'efdac89c4da886a9cece1927e6c22977',
    'icon': 'folder',
    'is_dir': True,
    'path': '/',
    'root': 'app_folder',
    'size': '0 bytes',
    'thumb_exists': False
}

'contents'配列の要素を取得してから、再帰的に'path'属性を使用してファイルを取得するにはどうすればよいかわかりません。

そして、私の最終的な目標は、Dropboxフォルダ内のすべてのファイルのリストを取得することです。すべてのファイルのリストを取得するためのより良い方法はありますか?

私は次のコードを試しました:

folder_metadata = self.api_client.metadata('/Photos')
print "-----------------------------"
print "path:", folder_metadata['path']
for s in folder_metadata['contents']:
    for dirname, dirnames, filenames in os.walk(s['path']):
        for filename in filenames:
            var = os.path.join(dirname, filename)
            print var

その出力は次のとおりです。

-----------------------------
path: /Photos

どうすれば絶対パスを取得できますか?

4

0 に答える 0