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");
}
});
}
答案 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