Ответ 1
Если вы на самом деле больше заинтересованы в том, чтобы научиться писать свои собственные, я бы посоветовал хорошо прочитать текст 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
}
Как только вы определили правильное состояние внешнего хранилища, простой способ начать - использовать метод File 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);
Оттуда, просто прочитайте документы, чтобы найти тот тип вещи, который вы хотите с ним сделать, а затем вы можете работать с привязкой их к списку адаптеров и т.д.
Надеюсь, это поможет!