4

有什么方法可以在不知道其 ID 的情况下获取框中的所有文件和文件夹?另外,如果我不知道协作 ID,如何获取所有协作对象?

4

4 回答 4

10

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

于 2013-05-15T13:01:16.783 回答
2

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

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

于 2013-05-16T05:19:26.270 回答
0

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

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

于 2013-05-15T14:52:12.867 回答
0

调用 listFilesInBoxFolders("0") ---> 这将解析从根目录开始的所有文件和文件夹

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();
 }
于 2016-09-12T01:29:45.473 回答