10

So i have a folder at "mnt/sdcard/folder" and its filled with image files. I want to be able to scan the folder and for each of the files that is in the folder put each file path in an arraylist. Is there an easy way to do this?

Peter
  • 5,071
  • 24
  • 79
  • 115

2 Answers2

16

You could use

List<String> paths = new ArrayList<String>();
File directory = new File("/mnt/sdcard/folder");

File[] files = directory.listFiles();

for (int i = 0; i < files.length; ++i) {
    paths.add(files[i].getAbsolutePath());
}

See listFiles() variants in File (one empty, one FileFilter and one FilenameFilter).

David Lantos
  • 670
  • 4
  • 8
12

Yes, you can use the java.io.File API with FileFilter.

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

I was quite surprised when I saw this technique, as it's quite easy to use and makes for readable code.

Matthew
  • 44,826
  • 10
  • 98
  • 87