【问题标题】:How can I list only last modified pdf files?如何仅列出上次修改的 pdf 文件?
【发布时间】:2019-05-08 07:04:11
【问题描述】:

我只想列出目录中最后修改的 pdf 文件。这是我的适配器:

我尝试在下面的代码中添加过滤器。但是将所有文件都添加到我的列表中,而不是最后修改的 pdf 文件。我做错了什么?

public static ArrayList<File> mList;
    private static final String EXT = ".pdf";
    NavController navController;
    Context context;

    public PdfRecentListAdapter(Activity activity) {
        this.context = activity;
        mList = new ArrayList<>();
        refreshRecent(Common.STORAGE_DIRECTORY);
        navController = Navigation.findNavController(activity, R.id.my_nav_host_fragment);
    }

    public void refreshRecent(File dir) {

        File fileList[] = dir.listFiles();

        if (fileList == null) {
            return;
        }

        for (File file : fileList) {
            if (file.isDirectory()) {
                refreshRecent(file);
            } else if (file.getName().endsWith(EXT)) {
                Arrays.sort(fileList, LASTMODIFIED_REVERSE);
                mList.add(file);
            }
        }

    }

【问题讨论】:

  • 你检查我的答案了吗?
  • 我现在正在检查。我以前试过,但再次检查

标签: android list file pdf last-modified


【解决方案1】:

试试这个:

可能对你有用!

Arrays.sort(files, new Comparator() {
                @SuppressWarnings("UseCompareMethod")
                public int compare(Object o1, Object o2) {
                    if (((File) o1).lastModified() > ((File) o2).lastModified()) {
                        return -1;
                    } else if (((File) o1).lastModified() < ((File) o2).lastModified()) {
                        return +1;
                    } else {
                        return 0;
                    }
                }
            });

【讨论】:

  • 它工作正常,但没有按我的意愿工作。正如我告诉你的,我以前试过。当我修改一个 pdf 文件时,列表没有改变。
  • 您的列表可能没有刷新!
  • 如果是这样,那么当我重新打开应用程序或重新打开页面时,我的列表应该会发生变化。我认为刷新我的列表没有任何意义
猜你喜欢
  • 1970-01-01
  • 2012-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多