java - Google Cloud Storage 按名称对目录进行排序

标签 java google-app-engine sorting google-cloud-storage

这对我来说感觉不对 - 给定 GCS 中的前缀并且知道我的“文件夹”始终以长值命名(例如 unix 时间中的日期),如果我要按降序对它们进行排序,我想获得第一个列表命令。现在,我只看到如何遍历它们并对列表进行排序:

ListOptions.Builder b = new ListOptions.Builder();
    b.setRecursive(false);
    b.setPrefix(path);
    ListResult result = null;
    result = gcsService.list(appIdentity.getDefaultGcsBucketName(), ListOptions.DEFAULT);
    List<Long> names = new ArrayList<>();

    while (result.hasNext()){

        ListItem l = result.next();
        String name = l.getName();
        logger.info("get top folder" + name);
        names.add(Long.valueOf(name));

    }
     Collections.sort(names);
     long topDay = names.get(0);

也许是我没有看到的列表选项?

最佳答案

如果数字具有相同的长度,则您正在查找结果最后一页上的最后一个元素。不幸的是,没有参数可以反转结果排序。

如果数字的长度不同,那就很粗糙。解决这个问题的最佳方法可能是迭代选项并跟踪您见过的最好的选项,尽管事后对它们进行排序也可以。

关于java - Google Cloud Storage 按名称对目录进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30739054/

相关文章:

java - 在 Android 中取消警报管理器

java - 本地开发服务器的身份验证不起作用

c# - 验证列表已排序且项目具有特殊字符时获取 NUnit AssertionException

.net - 如何使用 .NET 对 XML 文件进行排序?

java - 一键播放和暂停Kotlin中的媒体录制

java - 如何使用 Java 和 Hibernate 从我的数据库打印整个表?

java - 尽管没有报告错误,但 App Engine 图表显示零 Activity ?

php - PHP 的 Google 应用引擎不加载 mysql

c++ - STL 排序是使用交换还是二进制复制?

java - UnexpectedRollbackException 覆盖了我自己的异常