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
どうすれば絶対パスを取得できますか?