2014-01-02 3 views
2

Есть ли способ получить полный путь к папке для файла с идентификатором файла, используя API-интерфейс Box?Как получить полный путь к файлу с файлом с данным файлом с помощью API

Из документации API ясно, что мы можем использовать идентификатор родительской папки, чтобы рекурсивно извлекать имена папок до тех пор, пока не будет достигнут корень, однако это приведет к множеству вызовов API REST в зависимости от количества родительских папок.

ответ

4

path_collection свойство file объекта содержит «путь папки к этому пункту, начиная с корневого каталога.» Эта информация может быть извлечена в одном запросе API, используя только идентификатор файла. См. Подробный пример documentation, часть которого показана ниже. Поле total_count указывает глубину дерева для этого файла, а поле entries содержит информацию о каждой папке в дереве. Я понимаю, что entries возвращены по порядку.

"path_collection": { 
    "total_count": 2, 
    "entries": [ 
     { 
      "type": "folder", 
      "id": "0", 
      "sequence_id": null, 
      "etag": null, 
      "name": "All Files" 
     }, 
     { 
      "type": "folder", 
      "id": "11446498", 
      "sequence_id": "1", 
      "etag": "1", 
      "name": "Pictures" 
     } 
    ] 
}, 
1
private String getFullPath(BoxFile.Info info) 
    { 
     List<BoxFolder> filePathList = info.getPathCollection(); 
     StringBuffer fullPathStringBuffer = new StringBuffer(""); 
     for (BoxFolder pf : filePathList) 
     { 
     fullPathStringBuffer.append("/").append(pf.getInfo().getName()); 
     } 
     System.out.println(fullPathStringBuffer.toString()); 
     return fullPathStringBuffer.toString(); 
    } 
Смежные вопросы