有没有办法在不知道他们的ID的情况下获取所有文件和文件夹?

时间:2013-05-15 05:40:00

标签: box-api

有没有办法在不知道他们的身份证的情况下获取所有文件和文件夹?另外,如果我不知道协作ID,如何获取所有协作对象?

4 个答案:

答案 0 :(得分:9)

您可以通过指定文件夹ID = 0来获取根文件夹和文件。 通过此结果,还可以获取更多文件夹或文件。

答案 1 :(得分:1)

您可以对您知道的文件夹ID使用Get Folder Items来检索其中包含的文件夹和文件的ID。正如Shanky所说,使用0从根文件夹开始。

Get Collaborations将显示文件夹上的协作。您不需要任何有关协作的信息,只需要文件夹ID。

答案 2 :(得分:0)

与专门针对路径访问构建的系统不同,Box为每个文件夹和文件提供持久的ID。这有很多优点。其中一个重要的是你可以重命名或移动一个文件,并且从不需要改变它。它还意味着您可以持久保存ID,将它们与您自己系统中的其他实体相关联,并且仍然可以返回到同一文件或文件夹。当然假设您仍然可以访问它。权限也可以改变。

通过调用GET /文件夹/ ID /协作来调用GET /协作或文件夹上的所有协作,您可以获得用户的所有协作

答案 3 :(得分:0)

调用listFilesInBoxFolders(" 0")--->这将解析从root

开始的所有文件和文件夹
public void listFilesInBoxFolders(String folderId) {

    try {
        // get a list of songs
        BoxApiFolder folderApi = new BoxApiFolder(mSession);
        BoxListItems items = folderApi.getItemsRequest(folderId).send();

        JSONObject object = new JSONObject(items.toJson());

        LogUtils.log(TAG, "Object " + object.toString());

        JSONArray array = object.getJSONArray("entries");

        for (int i = 0; i < array.length(); i++) {
            JSONObject object1 = array.getJSONObject(i);
            String type = object1.getString("type");
            String id = object1.getString("id");
            String name = object1.getString("name");
            if (type.equals("folder")) {
                listFilesInBoxFolders(id);
            } else if (type.equals("file")) {
                // Supported Media file types
                if (name.contains("mp3") || name.contains("m4a") || name.contains("flac")) {
                    musicItems.add(new BoxMusicItem(id, name));
                }
            }
        }

        LogUtils.log(TAG, "array " + array.toString());

    } catch (BoxException e) {
        e.printStackTrace();
    } catch (JSONException e) {
        e.printStackTrace();
        LogUtils.log(TAG, "Json Error");
    }
    // For testing to make sure i have all files in box
    printFilesInBox();
 }