Если вы на самом деле больше заинтересованы в том, чтобы научиться писать свои собственные, я бы посоветовал внимательно прочитать документацию класса File . Вот где вы собираетесь выполнять большую часть работы.
В случае SD-карт / другого внешнего хранилища для Android вы должны сначала убедиться, что внешнее хранилище смонтировано и доступно, прежде чем пытаться его прочитать, используя класс Environment :
String extState = Environment.getExternalStorageState();
//you may also want to add (...|| Environment.MEDIA_MOUNTED_READ_ONLY)
//if you are only interested in reading the filesystem
if(!extState.equals(Environment.MEDIA_MOUNTED)) {
//handle error here
}
else {
//do your file work here
}
После того, как вы определили правильное состояние внешнего хранилища, простой способ начать - это использовать метод listFiles (), например, так:
//there is also getRootDirectory(), getDataDirectory(), etc. in the docs
File sd = Environment.getExternalStorageDirectory();
//This will return an array with all the Files (directories and files)
//in the external storage folder
File[] sdDirList = sd.listFiles();
Затем вы можете начать использовать FileFilters, чтобы сузить результаты:
FileFilter filterDirectoriesOnly = new FileFilter() {
public boolean accept(File file) {
return file.isDirectory();
}
};
File[] sdDirectories = sd.listFiles(filterDirectoriesOnly);
С этого момента, просто прочитайте документы, чтобы найти тип того, что вы хотите с ним делать, а затем вы можете работать над их привязкой к списку адаптеров и т. Д.
Надеюсь, это поможет!