如何在框网中搜索时只检索文件

时间:2013-12-17 12:05:54

标签: box-api

对于分页,我们可以选择在请求对象中设置限制和偏移量,但它会检索所有文件以及与搜索字符串匹配的文件夹。我们的要求是只获取匹配文件,跳过具有给定限制的文件夹。跳过文件夹正在影响分页。

默认情况下,以下注释行不要'允许提及具体类型:

boxSearch = boxNetContext.getBoxClient().getSearchManager().search(searchFileName, boxDefaultRequestObject);

我们在下面进行了更改,以便将类型传递为FILES

SearchRequest request = new SearchRequest(boxNetContext.getBoxClient().getConfig(), boxNetContext.getBoxClient().getJSONParser(), searchFileName, boxDefaultRequestObject);
boxSearch = (BoxCollection) boxNetContext.getBoxClient().getSearchManager().getResponseAndParseAndTryCast(request, BoxResourceType.FILES, boxNetContext.getBoxClient().getJSONParser());

此更改无效。它还检索文件和文件夹。 请帮助我们仅检索不影响分页的匹配文件

2 个答案:

答案 0 :(得分:0)

Search API documentation未提供按type过滤的方法。但是,它确实说明了:

as you’re parsing the results, be prepared to skip over any types of items your app does not recognize.

因此,您似乎需要在代码中过滤这些结果。如果您需要在每页显示一定数量的结果,则可能需要执行多个搜索查询才能缓存所需的数字结果。

答案 1 :(得分:0)

以下是我在Android平台上的经验建议。

找到com.box.boxjavalibv2.requests.SearchRequest.java文件,更改代码如下

public SearchRequest(final IBoxConfig config, final IBoxJSONParser parser, final String searchQuery, BoxDefaultRequestObject requestObject)
        throws BoxRestException {
        super(config, parser, URI, RestMethod.GET, requestObject);
        addQueryParam("query", searchQuery);
}

public SearchRequest(final IBoxConfig config, final IBoxJSONParser parser, final String searchQuery, BoxDefaultRequestObject requestObject)
    throws BoxRestException {
    super(config, parser, URI, RestMethod.GET, requestObject);
    addQueryParam("query", searchQuery);
    addQueryParam("type", "file");
}

然后结果是没有文件夹的纯文件。

祝你好运。