首页 > 解决方案 > 如何在java中从android的可移动存储(SD卡)获取所有pdf文件的链接?

问题描述

我无法从可移动存储(SD 卡)中获取 pdf 文件。

我已经使用以下方法成功获取了外部存储中 pdf 的所有链接

    public String findBooks() {

        String pdf = ".pdf";
        String epub = ".epub";

        File dir = Environment.getExternalStorageDirectory();
        Queue<File> toVisit = new PriorityQueue<>(); 
        toVisit.add(dir);
        String pdfs = "";
        int pdfCount = 0;

        if (toVisit.size() != 0) {
          while(true){
              File file = toVisit.remove();
              File[] tmpList = file.listFiles();
              int i;
              for(i = 0; i < tmpList.length; i++){
                if (tmpList[i].isDirectory()) {
                    toVisit.add(tmpList[i]);
                } 
                else if (tmpList[i].getName().endsWith(pdf) || tmpList[i].getName().endsWith(epub) ){
                    pdfs += tmpList[i].toString() + ",";
                    pdfCount += 1;
                }
              }

              if(toVisit.size() == 0){
                Toast.makeText(getReactApplicationContext(), "End of search: "+ String.valueOf(pdfCount), 0).show();
                break;
              }
          }
        }

      return pdfs;
    }

标签: javaandroidandroid-sdcard

解决方案


我已使用以下方法成功获取外部 SD 卡中 pdf 的所有链接

该代码适用于外部存储,而不是可移动存储

我想我应该也可以使用相同的方法从内部存储中获取 pdf

不,因为除了专门为您的应用程序预留的目录(例如on )之外,您无权访问internal storage 。getFilesDir()Context


推荐阅读