扫描多个文件的uri?

时间:2017-06-28 18:35:35

标签: android uri

public void walkdir(File dir){         字符串pdfPattern =" .png&#34 ;;

    File[] listFile = dir.listFiles();

    if (listFile != null) {
        for (int i = 0; i < listFile.length; i++) {

            if (listFile[i].isDirectory()) {
                walkdir(listFile[i]);
            } else {
                if (listFile[i].getName().endsWith(pdfPattern)) {

                    scanFile(listFile);**Not working**

                }
            }
        }
    }
}

所以如何扫描目录中的图像

这是媒体扫描仪---

 private void scanFile(String path) {
        MediaScannerConnection.scanFile(MainActivity.this,
                new String[]{path}, null,
                new MediaScannerConnection.OnScanCompletedListener() {

                    public void onScanCompleted(String path, Uri uri) {
                        Log.wtf("ff", "ff");
                    }
                });

    }

2 个答案:

答案 0 :(得分:0)

我相信你想扫描特定文件扩展名的目录,例如.png

你可以尝试这样的事情。

    File dirs = new File(path);
    FileFilter filter = new FileFilter() {
   @Override
    public boolean hasFiles(File file) {
    return file.getAbsolutePath().matches(".*\\.png");
    }
    };
    File[] images = dirs.listFiles(filter);

有关详细信息,请访问:FileFilter

答案 1 :(得分:0)

扫描像这样的文件夹中的图像

ArrayList<String> myFiles=new ArrayList<>();
private ArrayList<String> getImages(String Foldername){    

File vaultt = new File(Environment.getExternalStorageDirectory().toString() + "/"+ Foldername+"/");
        if (vaultt.exists()) {
            Toast.makeText(this, "exist", Toast.LENGTH_SHORT).show();
            files = vaultt.listFiles();
            Log.e("vault location", vaultt.getAbsolutePath());
            for (File single : files) {
                if (single.getAbsolutePath().endsWith(".jpg") || single.getAbsolutePath().endsWith(".JPG") ||
                        single.getAbsolutePath().endsWith(".png") || single.getAbsolutePath().endsWith(".PNG") ||
                        single.getAbsolutePath().endsWith(".jpeg") || single.getAbsolutePath().endsWith(".JPEG")) {
                    myFiles.add(single.getPath());
                }
            }
    return myFiles;

}

另外不要忘记添加<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> in yout manifest file